Javascript 使用MSAL.js单点登录?

Javascript 使用MSAL.js单点登录?,javascript,azure-active-directory,msal,Javascript,Azure Active Directory,Msal,当已经验证到AzureAD时,是否可以为我的应用程序获得单次登录 可能的流动: 以AzureAD用户身份登录 转到我的应用程序 重定向到 (ish)->返回令牌和 重定向回我的应用程序 下次我使用我的应用程序时,如果我得到一个有效的cookie,我不会被重定向到microsoftonline.com,可以直接开始使用我的应用程序 简而言之,我希望在不向最终用户显示弹出窗口的情况下访问回调: var userAgentApplication=new Msal.userAgentApplicati

当已经验证到AzureAD时,是否可以为我的应用程序获得单次登录

可能的流动:

  • 以AzureAD用户身份登录
  • 转到我的应用程序
  • 重定向到 (ish)->返回令牌和 重定向回我的应用程序
  • 下次我使用我的应用程序时,如果我得到一个有效的cookie,我不会被重定向到microsoftonline.com,可以直接开始使用我的应用程序

    简而言之,我希望在不向最终用户显示弹出窗口的情况下访问回调:

    
    var userAgentApplication=new Msal.userAgentApplication(“您的客户机id”,null,函数(errorDes,token,error,tokenType){
    //在LoginDirect或acquireTokenRedirect之后调用此回调(不用于LoginPup/AquireTokenPup)
    })
    userAgentApplication.LoginPoop([“user.read”]”)然后(函数(令牌){
    var user=userAgentApplication.getUser();
    如果(用户){
    //签约成功
    }否则{
    //签字失败
    }
    },函数(错误){
    //处理错误
    });
    

    如果指定租户并且之前只有一个用户登录到azure ad,则如果
    提示=none
    (默认情况下),您可以直接登录您的应用程序。使用MSAL.JS无法实现这一点,请参阅MSAL.JS的源代码:

     var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + "&prompt=select_account" + "&response_mode=fragment";
    
    它将设置
    prompt=select\u account
    将用户重定向到select account页面。如果您使用的是Azure AD帐户,并且只想登录特定租户,则可以尝试ADAL.JS(不会强制提示=选择_帐户)。如果这是一个多租户应用程序(使用
    common
    而不是租户id),您无法避免用户选择带有azure ad v2.0端点的页面


    注意:如果用户使用多个帐户登录azure ad,您无法避免用户选择页面,也就是说,用户应该有机会选择他或她想要用于登录应用程序的帐户。

    使用而不是LoginPoop,并将您的客户端ID作为范围传递。如果承诺被拒绝,那么您需要调用其他函数之一进行登录。

    谢谢,我们使用了ADAL.js,但希望迁移到MSAL。