Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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
Mobile 带移动客户端的Saml单点登录_Mobile_Single Sign On_Saml_Saml 2.0_Shibboleth - Fatal编程技术网

Mobile 带移动客户端的Saml单点登录

Mobile 带移动客户端的Saml单点登录,mobile,single-sign-on,saml,saml-2.0,shibboleth,Mobile,Single Sign On,Saml,Saml 2.0,Shibboleth,关于SAML及其通过Shibboleth的实现,我有很多问题。我已经做了大量的研究,我想澄清一些事情。我有一个与服务器通信的移动应用程序。我们的一个企业客户,我们称之为StackOverflow大学,希望使用Shibboleth(或者我应该说SAML?)为我们的系统提供SSO。他们已经给我们发送了所有学生的电子邮件地址和基本资料。使用OAuth2,我们确切地知道如何提供SSO,但是,使用SAML,我们不能将注意力集中在IDP、SP、AuthnRequest、元数据等方面 我们的假设 IDP=斯

关于SAML及其通过Shibboleth的实现,我有很多问题。我已经做了大量的研究,我想澄清一些事情。我有一个与服务器通信的移动应用程序。我们的一个企业客户,我们称之为StackOverflow大学,希望使用Shibboleth(或者我应该说SAML?)为我们的系统提供SSO。他们已经给我们发送了所有学生的电子邮件地址和基本资料。使用OAuth2,我们确切地知道如何提供SSO,但是,使用SAML,我们不能将注意力集中在IDP、SP、AuthnRequest、元数据等方面

我们的假设

  • IDP=斯塔克弗勒大学
  • SP=我们的应用程序
我们的客户要求我们提供以下信息

请让我知道下一步。我需要至少以下信息来配置我们的团队: -您的服务提供商实体ID -您的服务提供商元数据(如果您不是InCommon的成员) -我们应该在SAML断言中向您发送的属性列表

我们不是InCommon的成员

方法 一名学生下载我们的移动应用程序。他们选择自己的机构(大学)。调用我们的服务器以检索SSO配置,其中包含SAML的必要信息

  • 移动客户端打开一个webview并导航到特定的web 地址。此网址将创建一个登录屏幕。我们如何配置请求以使用以下URL之一和AuthnRequest
  • 
    
    客户端,您需要一个

    这将为您实现所有管道。大多数都生成元数据。你把这个发给你的IDP。这有他们要求的entityID等

    客户端,将登录屏幕连接到堆栈

    您可以使用IDP元数据地址配置堆栈以获取其元数据


    用户单击login,堆栈发送AuthnRequest,IDP显示登录屏幕,用户进行身份验证,您返回一个SAML令牌,其中包含IDP配置为返回的断言(声明)。

    我不确定是否正确理解用例,但是我认为移动客户端不应该做任何实际的SAML处理;这发生在服务提供商(SP)和身份提供商(IdP)之间。实际上,在这样的场景中,OpenID Connect更适合。但仅为了解释(如果SAML是强制性的),简而言之,必须发生以下情况:

    • 移动应用向应用发送请求,但尚未登录;位于应用程序前面的SP将重定向到IdP。该重定向包含SAML身份验证请求
    • 移动应用程序必须遵循该重定向,然后执行登录。现在的问题是SAML没有定义如何登录;它可以是带有用户名和密码的HTML表单,也可以是某种双因素身份验证过程。如果这是第一个,移动应用程序可能只是要求用户提供他们的凭据,然后直接发布,但这是一种黑客行为,下次IdP更改他们的登录表单时就会中断。更糟糕的是,这意味着移动应用程序实际上拥有用户的凭据,即使它真的不应该;这些应该留在IdP上。这是移动应用程序中SAML的最大问题;实际登录的执行方式尚未定义,具体取决于IdP
    • 一旦登录以某种方式成功完成,IdP将(在大多数情况下)响应HTTP 200和带有一些JavaScript代码的XHTML页面。该页面包含SAML断言,并将自己发布到服务提供商。断言没有在重定向中发回的原因是它通常太大,无法在URL查询参数中发送

    因此,底线是,编写一个在传统IdP上执行SAML登录的移动客户端是一项困难的任务,因为这意味着移动应用程序本质上必须模仿web浏览器。这是OpenIDConnect更适合的地方,因为它有不同的设计方法。因此,如果可能,请尝试使用OIDC。

    定义:身份提供商(IDP)服务提供商(SP)