是否可以在WSO2中使用不带域的用户名进行身份验证

时间:2016-03-31 01:54:02

标签: wso2 wso2is

我刚刚创建了名为mycompany.com的租户。在此租户中,我注册了名为SP的服务提供商。 在将我的应用程序与WSO2集成后,应用程序将创建SAML Authn请求

<?xml version="1.0" encoding="UTF-8"?>
<saml2p:AuthnRequest  AssertionConsumerServiceURL="https://localhost:8443/myapp/auth/sso"
    Destination="https://localhost:9443/samlsso"
    ForceAuthn="false" ID="a2i70af753i64cce4ehj977h3h9085h"
    IsPassive="false" IssueInstant="2016-03-30T02:51:12.083Z"
    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
    Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">SP@mycompany.com</saml2:Issuer>
    <saml2p:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" SPNameQualifier="SP"/>
    <saml2p:RequestedAuthnContext Comparison="exact">
        <saml2:AuthnContextClassRef xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml2:AuthnContextClassRef>
    </saml2p:RequestedAuthnContext>
</saml2p:AuthnRequest>

它将使用以下URL重定向到WSO2登录页面:

https://localhost:9443/authenticationendpoint/login.do?commonAuthCallerPath=%2Fsamlsso&forceAuth=false&passiveAuth=false&tenantDomain=mycompany.com&sessionDataKey=22e974a4-1a42-4670-82f5-3538828d7d03&relyingParty=SP%40mycompany.com&type=samlsso&sp=SP&isSaaSApp=false&authenticators=GoogleOIDCAuthenticator%3AGoogle%3BFacebookAuthenticator%3AFB%3BSAMLSSOAuthenticator%3AADFS%3BBasicAuthenticator%3ALOCAL

我想知道为什么我需要将租户域名作为用户名的一部分传递。

即:

用户名:user@mycompany.com

密码:秘密

我们是否可以配置WSO2,使其从URL参数中获取域名,而不是将其附加到用户名

3 个答案:

答案 0 :(得分:1)

在所有情况下,用户名的格式相同。因此,租户域名应该是用户名。

答案 1 :(得分:1)

如果您不想将租户域附加到用户名,则可以在身份验证端点中使用租户下拉功能,如“将租户加载到[认证端点Web应用程序的登录页面的下拉列表”部分中所述] [ 1]

[1] https://docs.wso2.com/display/IS510/Customizing+the+Authentication+Endpoint

答案 2 :(得分:1)

如果您有更好的单租户,您不希望使用上述租户。请在没有租户的情况下使用WSO2 IS。所以你只能使用用户名和密码。