云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

分布式数据库_阿里云分销商_速度快

小七 141 0

目的这个示例项目的目的是演示web开发人员如何使用Auth0添加身份提供者netID作为最终用户注册和登录web应用程序的选项。Daria Nepriakhina在Unsplash拍摄关于netIDnetID是一家欧洲身份提供商。欧洲网络ID基金会由德国Mediengruppe RTL Deutschland、ProSiebenSat.1和联合互联网于2018年3月成立。它的目标是建立netID单一登录,作为欧洲替代美国供应商。有了netID,用户可以透明地组织他们同意使用互联网服务(opt-ins),并遵守数据保护法规。为此,基金会制定了一个开放标准,允许所有部门的用户访问同一登录的欧洲NETID基金会的所有互联网服务。从一开始就专注于德国最初的核心市场,3800万个账户就可以使用了,覆盖了大约60%的德国在线用户。https://netid.de/HTTPS://EnID.基础/Auth0用户可以添加netID作为自定义社交连接,同时添加其他社交登录。netID主要是一个身份提供商(IdP),专注于无障碍和安全登录,而不是将多个服务捆绑到一个平台上。这有安全方面的好处,并使消费者能够更清楚地看到他们的数据是如何以及在哪里共享的。基于这些原因,netID对于DACH地区(德国、奥地利、瑞士)的公司来说是一个特别好的选择,因为那里的消费者要求更大程度地控制他们的在线个人信息。创建netID服务先决条件我们假设您已经注册了Auth0帐户并设置了租户。如果没有,请在这里注册一个免费的Auth0帐户。另外,我们假设您已经在Auth0中安装了客户端应用程序。如果没有,您可以参考下面的步骤和屏幕截图。此外,我们假设您已经在netID注册了服务提供商帐户。如果没有,在这里注册一个网络帐号。网络ID配置首先,登录netID开发人员门户。创建一个您要利用netID单点登录的Dienst(服务)。在菜单中选择Dienst,单击Dienst hinzufügen(添加服务),然后在下面的屏幕中填写所需的详细信息。如果需要更多信息,请阅读此处的详细文档。示例服务可以如下所示,其中服务域(Dienst域)是面向客户的网站的域。此外,还应提供指向数据隐私信息(URL Datenrichtlinien)和使用条款(URL AGB/Benutzungsbedingungen)的链接:注意:出于测试目的,您实际上可以在这个表单中输入任何域和URL值,因为它们在技术上并不相关,以便运行Auth0中的netID集成最后,它应该看起来像这样:通过单击clienthinzufügen(添加客户机)为该服务创建一个客户机。有关如何执行此操作的详细文档可在netID开发人员门户中找到。为租户设置正确的Auth0回调URL非常重要。Auth0回调URL是https://.Auth0.com/login/Callback,其中需要替换为Auth0租户名称。示例配置:注意:这里的值应该根据您的需要进行调整,特别是"callbackurl",它需要指向您的Auth0租户和地区最后,它应该看起来像这样:一旦客户端被创建,它最初将以沙盒模式运行,这意味着它只能与白名单上的netID帐户(电子邮件地址)一起使用。为了成功运行初始集成,通过选择testnutzerhinzufügen(添加测试帐户),将一个测试用户(电子邮件地址)添加到白名单中,方法是选择开发人员门户上列出的testnutzerhinzufügen。每个沙盒客户端最多可以白名单10个帐户。最后,通过展开客户端详细信息,找到Auth0配置的客户端ID和netID令牌-沙盒(稍后称为Client secret),如下图所示:在Auth0中创建自定义社交连接要配置Auth0,请先登录到Auth0仪表板。然后,转到左侧菜单中的扩展。确保已安装自定义社交连接扩展。如果没有,请单击并按"安装"按钮进行安装:安装后,您将看到它出现在列表中。单击扩展进行配置:注意:第一次配置此扩展时,可能会要求您使用Auth0进行身份验证。下面的屏幕截图显示了预配置但已禁用的自定义连接的概述。按标有+新建连接的橙色按钮创建和配置新连接:接下来,在显示的配置屏幕中输入以下值:姓名:netID客户端ID:客户端机密:(以前称为netID Token-sandbox)在同一屏幕上,将以下JavaScript片段复制到Fetch User Profile脚本框中:函数(accessToken、ctx、cb){请求.get('https://broker.netid.de/userinfo', {标题:{"授权":"承载者"+accessToken}},功能(e、r、b){如果(e)返回cb(e);如果(r.statusCode!==200)返回cb(新错误('StatusCode:'+r.StatusCode));变量配置文件=JSON.parse(b) ;cb(空{姓名:配置文件名+ ' ' + profile.family_名称,姓氏:profile.family_名称,给定姓名:配置文件名,电子邮件:个人资料.电子邮件,电子邮件已验证:profile.email_已验证,出生日期:个人资料.出生日期,性别:简介.性别,用户账号:剖面图.sub});});}将以下URL复制到"授权URL"框中:https://broker.netid.de/authorize?claims={"userinfo":{"birthdate":{"essential":true},"gender":{"essential":true},"email":{"essential":true},"email"已验证"{"essential":true},"given"name":{"essential":true},"family"name":{"essential":true}}}注意:在这个URL中,您注意到显式参数声明。此参数告诉Auth0哪个请求来自netID。请注意-netID将忽略通过标准范围(名称、地址等)以及可选/自愿声明请求的任何数据。每个OpenID Connect调用必须始终请求OpenID作用域。此外,必须将所需的主数据制定为基本要求。netID支持以下说法性别-最终用户的性别给定姓名-最终用户的名字姓(U)的姓birthdate—最终用户的出生日期电子邮件-最终用户的电子邮件地址电子邮件验证-最终用户电子邮件地址的验证状态地址-最终用户的地址country—最终用户地址的国家您可以根据需要调整claims参数。在配置屏幕中输入以下两个值,继续此配置步骤:令牌URL:https://broker.netid.de/token作用域:openid认证头由于netID需要基本身份验证进行身份验证,但是Auth0自定义社交连接扩展默认通过post body提交凭据,因此我们需要为授权创建一个自定义头并将其添加到配置中。散列是通过base64编码clientID和clientSecret来创建的,clientSecret与a连接。所以生成这个的伪代码是:base64encode(clientId+":"+clientSecret)也可以使用在线base64编码工具来构造此值。然后根据标准授权头格式构造完整的头,将类型设置为bearrier:{"Authorization":"基本"}最后,它应该看起来像这样:您可以按"尝试"按钮尝试连接,成功后,将显示如下屏幕:在"应用程序"选项卡下,确保已为此自定义社交连接启用客户端/应用程序。否则,启用复选框:点击Save按钮并返回到custom social connections的概述后,您应该会看到新添加的一个已在此处列出并处于活动状态:最后,调整通用登录页面配置并添加几行自定义CSS,使netID按钮显示出各自的徽标和颜色。为此,导航到Universal Login Page>Login Page configuration并启用Customize Login Page复选框。调整登录页面的源代码,将JSON对象中的主题部分替换为以下行:主题:{标志:配置图标,原色:颜色.primary? 颜色.primary:"绿色",授权按钮:{"netID":{displayName:"netID",原色:"#74b82b",前底色:"#fff",图标:"https://raw.githubusercontent.com/auth0-blog/auth0-netid-sample/master/img/favicon_trans.png"}}},在此之前:之后:认证流程萤幕录影有关更多上下文,您可以查看以下身份验证流的屏幕广播,以更好地了解与netID的集成是如何工作的:身份验证在客户机应用程序中按login按钮时,Auth0提供了一个登录/注册小部件,其中包含通过用户名和密码或通过社交登录(如netID)登录/注册的选项。当选择netID时(我们假设最终用户已经在netID上有一个帐户),用户将被要求登录netID,提供一个电子邮件地址。注意:如果您的客户机在沙盒模式下运行,如这里所述,它将只对白名单电子邮件地址起作用他们还需要提供密码:成功登录后,将要求他们同意netID授予Auth0访问其个人信息的权限:此外,演示客户端请求同意访问Auth0租户:在给予同意之后,浏览器在接收到ID令牌和关于用户的信息之后重定向到应用程序:在Auth0中创建客户端应用程序在我们的示例中,我们基于从节点.js网络服务器。你可以选