我将SLES11与Python2.6和Apache Web应用程序一起使用。我有一个带有Kerberos的Active Directory服务器,我想将SSO与我的应用程序一起使用。
我已经在EXAMPLE. ORG域中创建了服务主体HTTP/host.example.org。此用户映射到虚拟用户app.dmy@EXAMPLE.ORG。
Kerberos在Linux客户端上运行良好,我可以初始化服务主体
kinit-s HTTP/host.example。组织app.dmy@EXAMPLE.ORG
klist公司
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: app.dmy@EXAMPLE.ORG
Valid starting Expires Service principal
09/28/15 14:27:27 09/28/15 14:37:27 HTTP/host.example.org@EXAMPLE.ORG
Kerberos 4 ticket cache: /tmp/tkt0
klist: You have no tickets cached
my/etc/krb5.conf看起来像:
1 [libdefaults]
2 ticket_lifetime = 600
3 default_realm = EXAMPLE.ORG
4 kdc_req_checksum_type = 2
5 checksum_type = 2
6 ccache_type = 1
7 clockskew = 300
8
9 [kdc]
10 profile = /var/lib/kerberos/krb5kdc/kdc.conf
11
12 [logging]
13 kdc = FILE:/var/log/krb5/kdc.log
14 admin_server = FILE:/var/log/krb5/adm.log
15 default = FILE:/var/log/krb5/log.log
16
17 [realms]
18 EXAMPLE.ORG = {
19 kdc = adserver.example.org:88
20 admin_server = adserver.example.org:749
21 default_domain = EXAMPLE.ORG
22 }
23
24 [domain_realm]
25 example.org = EXAMPLE.ORG
26 .example.org = EXAMPLE.ORG
27
28 [login]
29 krb4_convert = 0
30 [appdefaults]
31 pam = {
32 ticket_lifetime = 1d
33 renew_lifetime = 1d
34 forwardable = true
35 proxiable = false
36 minimum_uid = 1
37 clockskew = 300
38 external = sshd
39 use_shmem = sshd
40 }
如果我通过apache和mod\u auth\u kerb使用身份验证,则SSO可以正常工作。但是我想对连接有更多的控制,因此禁用了apache身份验证,并用python(cherrypy框架)编写了自己的模块。
我安装了pyKerberos(Kerberos1.2.2不起作用,Python崩溃并出现分段故障)。
这里我的python代码:
import kerberos
import base64
service = 'HTTP'
hostname = 'host.example.org'
# env.log(kerberos.checkPassword('app.dmy', 'xxx', service, 'EXAMPLE.ORG')
''' for testing works fine '''
spn = kerberos.getServerPrincipalDetails(service, hostname)
''' result service principla from keytab
HTTP/host.example.org@EXAMPLE.ORG'''
status, _ctxt = kerberos.authGSSClientInit(spn)
''' status = 1, _ctxt = context object '''
kerberos.authGSSClientStep(_ctxt, base64.b64encode(""))
我在日志中得到以下结果:
(('Unspecified GSS failure. Minor code may provide more information', 851968), ('No credentials cache found', -1765328189))
高速缓存文件存在于tmp中,spn用kinit注册。
你说的程序不对。这是服务器端:GSSAPI接收器,用于验证HTTP客户端。您需要调用authGSSServer{Init,Step};就正在进行的实际GSSAPI调用而言,gss\u accept\u sec\u context()。您调用的是gss\u init\u sec\u context(),它抱怨在默认ccache中没有TGT形式的凭据可用于获取服务器票证。Kerberos中的服务器不需要相同类型的凭据;相反,他们有一个带有长期密钥的密钥表,不需要联系KDC来验证客户端。
问题内容: 我正在尝试在片段中使用RecyclerView。对于第一个选项卡,它显示得很好,但是当我滑动到第二个选项卡然后又回到第一个选项卡时,出现以下错误: java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“ void android.support.v7.widget.RecyclerView $ LayoutManager.stopSmoothSc
问题内容: 当我使用编译类时,收到此错误消息? 包不存在 我可以通过将其包含在编译类路径中来进行修复。 为什么不在默认的jdk类路径上? 是在类路径上,并包括其他软件包,但jce似乎很特殊? 问题答案: 好的,这是我的错误。我用来编译代码的Ant文件在任务中具有以下属性: h 您可以像这样添加JCE jar:
问题内容: public class Category { 在正在生成。 问题答案: 当您执行时,您称呼孩子们的。这里没有问题,只不过您在这里调用了父对象。这将称呼孩子,等等。 不错的无限循环。 摆脱它的最好方法是将您的方法更改为: 这样,您将不打印parentCategory,而仅显示其名称,不显示无限循环,不显示StackOverflowError。 编辑: 正如博洛在下面说的那样,您将需要检
我试图找到这个按钮并点击它。但我得到了这个错误: 我注意到它正在寻找不同的字符串bc它在类名前面添加了这个点。这是问题吗? 非常感谢。
测试代码为: 测试代码为: 你知道怎么了吗?
我遇到JSON解析错误。我的代码如下: 我从我的检查中得到以下错误: 由于:com,无法分析JSON。谷歌。格森。JsonSyntaxException:java。lang.IllegalStateException:应为BEGIN\u对象,但在第1行第2列为BEGIN\u数组 对于我试图读取的JSON,如果成功,我的应该返回5。 我做错了什么?