坚持使用谷歌SAML

时间:2018-01-17 21:38:19

标签: coldfusion saml google-authentication

我的任务是找出如何将SAML单一登录与现有应用程序集成。我发现在设置身份提供商之后找到答案比找到答案要困难得多。

首次通过尝试我已经设置了Google G-suite SAML应用... 我有信息(entityId,ACS url,IDP Metadata xml)

我已经为测试应用程序设置了一个URL,我正在尝试查找有关写什么的任何信息...我可以找到无代码示例...当然我可以找到其他服务提供商“实现”样品,但这对我没有帮助,因为我的应用程序将是服务提供商。

任何有关此问题的帮助,如何为Google SAML应用程序编写“登录”按钮。

这是我尝试的代码 - 它在coldfusion中,但你会得到要点 - 响应是状态代码400

<cfsavecontent variable="req">
    <cfoutput>
        <samlp:AuthnRequest 
            xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
            xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
            ID="!!!!!GENERATEDUNIQUEREQUESTID!!!!!" 
            Version="2.0" 
            ProviderName="SP test" 
            IssueInstant="2014-07-16T23:52:45Z" 
            Destination="https://CLIENTSITE.MYDOMAIN.com/samlLogin" 
            ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
            AssertionConsumerServiceURL="https://saml.MYDOMAIN.com/acs/process">

            <saml:Issuer>https://saml.MYDOMAIN.com/sp/entityId</saml:Issuer>
            <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" AllowCreate="true"/>
            <samlp:RequestedAuthnContext Comparison="exact">
                <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
            </samlp:RequestedAuthnContext>

        </samlp:AuthnRequest>
    </cfoutput>
</cfsavecontent>

<html>
    <head>

    </head>
    <body>
        <cfoutput>
            <div>
                 <form id="login-google" action="https://accounts.google.com/o/saml2/idp?idpid=!!!!!IDCODE!!!!!" method="post">
                     <input type="hidden" name="SAMLResponse" value="#toBase64( trim( req ), 'utf-8' )#" />
                     <input type="submit" value="Login" />
                </form>
            </div>
        </cfoutput>
    </body>
</html> 

0 个答案:

没有答案