Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WSO2 API管理器和Kerberos_Wso2_Wso2 Am - Fatal编程技术网

WSO2 API管理器和Kerberos

WSO2 API管理器和Kerberos,wso2,wso2-am,Wso2,Wso2 Am,我已经设置了一个新的WSO2 API管理器服务器(版本2.6.0),并尝试将服务器配置为支持Kerberos,但我在理解整个过程时遇到了一个问题。 我们的客户端是在windows机器(Chrome或IE)上运行的角度应用程序。在我找到的文档中,应用程序应该通过调用 curl-v-X POST-H“授权:基本”-k-d“授权类型=kerberos&kerberos\u领域=&kerberos\u令牌=****”-H“内容类型:应用程序/X-www-form-urlencoded”https://l

我已经设置了一个新的WSO2 API管理器服务器(版本2.6.0),并尝试将服务器配置为支持Kerberos,但我在理解整个过程时遇到了一个问题。 我们的客户端是在windows机器(Chrome或IE)上运行的角度应用程序。在我找到的文档中,应用程序应该通过调用
curl-v-X POST-H“授权:基本”-k-d“授权类型=kerberos&kerberos\u领域=&kerberos\u令牌=****”-H“内容类型:应用程序/X-www-form-urlencoded”https://localhost:9443/oauth2/token

但是这个“kerberos令牌”应该来自哪里,我如何测试它呢

  • 我已经安装并配置了与文档对应的服务器
  • 我在AD中有一个服务主体,并在WSO2 API中配置了身份提供者
  • 我已经配置了一个用于普通OAuth2的示例API
  • 我已在应用程序(WSO2 API存储)上激活Kerberos

我的预期结果是,调用服务,对用户进行身份验证,并将用户信息传递给后端服务,但目前我无法找到如何找到此kerberos tocken的解决方案。

创建API时,将授权头定义为X-APIM-Auth。 构建下面的自定义处理程序代码,并将生成的jar复制到路径/repository/components/dropins中的以下目录

您可以将此自定义处理程序添加到API中,并将以下逻辑添加到/repository/resources/API\u templates/velocity\u template.xml文件中

将IIS后端服务的SPN配置为处理程序中的targetSPN属性,如下所示

<handler class="org.wso2.apim.kerberos.handler.CustomKerberosDelegationHandler">
        <property name="targetSPN" value="<Server Principal Name>"/>
</handler>
示例login.conf文件:

[libdefaults]
        default_realm = EXAMPLE.COM

[realms]
        EXAMPLE.COM = {
        kdc = kdc1.example.com
                  }

[domain_realm]
        .example.com = EXAMPLE.COM
KrbLogin {
 com.sun.security.auth.module.Krb5LoginModule required
 useTicketCache=false
 refreshKrb5Config=true
 doNotPrompt=true
 useKeyTab=true
 debug=true
 storeKey=true
 principal="< principal >"
 keyTab="< keytab_path >";
};
KrbLogin{
需要com.sun.security.auth.module.Krb5LoginModule
useTicketCache=false
refreshKrb5Config=true
doNotPrompt=true
useKeyTab=true
调试=真
storeKey=true
principal=“”
keyTab=“”;
};
用于创建键选项卡的命令

ktpass /out <keytab>  /princ HTTP/<FQDN>@<DOMAIN NAME> /mapuser <User Name of the AD account>/pass <User Password of the Authentication Service AD account> /crypto All /ptype KRB5_NT_PRINCIPAL
ktpass/out/princ HTTP/@/mapuser/pass/crypto All/ptype KRB5\u NT\u PRINCIPAL

尝试通过密码授权类型获取访问令牌。

创建API时,将授权头定义为X-APIM-Auth。 构建下面的自定义处理程序代码,并将生成的jar复制到路径/repository/components/dropins中的以下目录

您可以将此自定义处理程序添加到API中,并将以下逻辑添加到/repository/resources/API\u templates/velocity\u template.xml文件中

将IIS后端服务的SPN配置为处理程序中的targetSPN属性,如下所示

<handler class="org.wso2.apim.kerberos.handler.CustomKerberosDelegationHandler">
        <property name="targetSPN" value="<Server Principal Name>"/>
</handler>
示例login.conf文件:

[libdefaults]
        default_realm = EXAMPLE.COM

[realms]
        EXAMPLE.COM = {
        kdc = kdc1.example.com
                  }

[domain_realm]
        .example.com = EXAMPLE.COM
KrbLogin {
 com.sun.security.auth.module.Krb5LoginModule required
 useTicketCache=false
 refreshKrb5Config=true
 doNotPrompt=true
 useKeyTab=true
 debug=true
 storeKey=true
 principal="< principal >"
 keyTab="< keytab_path >";
};
KrbLogin{
需要com.sun.security.auth.module.Krb5LoginModule
useTicketCache=false
refreshKrb5Config=true
doNotPrompt=true
useKeyTab=true
调试=真
storeKey=true
principal=“”
keyTab=“”;
};
用于创建键选项卡的命令

ktpass /out <keytab>  /princ HTTP/<FQDN>@<DOMAIN NAME> /mapuser <User Name of the AD account>/pass <User Password of the Authentication Service AD account> /crypto All /ptype KRB5_NT_PRINCIPAL
ktpass/out/princ HTTP/@/mapuser/pass/crypto All/ptype KRB5\u NT\u PRINCIPAL

尝试通过密码授权类型获取访问令牌。

我已按照您的描述配置了所有内容,并收到错误消息
900902缺少所需的凭据OAuth凭据未提供。确保您的API调用具有标题:“授权:承载访问\u令牌”
是否有激活Kerberos相关日志项的方法?检查您是否有Kerberos\u grant\u 1.0.0.jar,然后尝试。Kerberos\u grant\u 1.0.0.jar位于文件夹F:\WSO2\API\u Manager\2.6.0\repository\components\libI已按照您的描述配置了所有内容,并收到一条错误消息
900902缺少凭据未提供必需的OAuth凭据。确保您的API调用有一个标题:“Authorization:Bearer ACCESS\u TOKEN”
是否有激活Kerberos相关日志项的方法?检查您是否有Kerberos\u grant\u 1.0.0.jar,然后重试。Kerberos\u grant\u 1.0.0.jar位于文件夹F:\WSO2\API\u Manager\2.6.0\repository\components\lib中