Azure active directory 如何使用adal.js的隐式授权流从Azure AD获取RefershToken

Azure active directory 如何使用adal.js的隐式授权流从Azure AD获取RefershToken,azure-active-directory,adal.js,Azure Active Directory,Adal.js,目前,通过我们的SPA(在Azure VM中运行的本机web应用程序)从Azure AD获取访问令牌的隐式授权流URL的格式如下: https://login.microsoftonline.com/{{tenantID}}/oauth2/authorize?response_type={{responseParams}}&client_id={{applicationID}}&redirect_uri={{redirectUri}} 这里,responseParams=id_

目前,通过我们的SPA(在Azure VM中运行的本机web应用程序)从Azure AD获取访问令牌的隐式授权流URL的格式如下:

https://login.microsoftonline.com/{{tenantID}}/oauth2/authorize?response_type={{responseParams}}&client_id={{applicationID}}&redirect_uri={{redirectUri}}

这里,responseParams=id_标记是Adal.js传递的默认值。要从Azure AD获取刷新令牌,需要对此URL进行哪些更改

隐式授权流不会发出刷新令牌,主要是出于安全原因。刷新令牌的范围不像访问令牌那样窄,它可以授予更大的权限,从而在泄漏时造成更大的伤害。在隐式流中,令牌在URL中传递,因此拦截的风险高于授权代码授予中的风险

但是,JavaScript应用程序有另一种机制可供使用,用于在不反复提示用户输入凭据的情况下更新访问令牌。应用程序可以使用隐藏的iframe对Azure AD的授权端点执行新的令牌请求:只要浏览器对Azure AD域仍有活动会话(读取:具有会话cookie),则无需用户交互即可成功执行身份验证请求

该模型使JavaScript应用程序能够独立地更新访问令牌,甚至为新API获取新令牌(前提是用户事先同意。这避免了获取、维护和保护高价值工件(如刷新令牌)的额外负担。使静默续订成为可能的工件Azure AD会话cookie在应用程序外部管理。此方法的另一个优点是用户可以在来自Azure AD的ut,使用任何登录到Azure AD的应用程序,在任何浏览器选项卡中运行。这将导致删除Azure AD会话cookie,并且JavaScript应用程序将自动失去为已注销用户续订令牌的能力


引用:

获取刷新令牌不是隐式流中的一个选项。您可以使用
prompt=none
刷新令牌。我应该将参数prompt=none放在哪里?它是同一个{{tenatid}/oauth2/authorize吗?响应类型={{responseParams}和客户端id={{applicationID}&重定向uri={{redirectUri}&prompt=non?