2017-05-11 6 views
1

AzureADに対して既に認証されている場合は、自分のアプリケーションでシングルサインオンが可能ですか?MSAL.jsでシングルサインオン?

Prossible流れ:私のアプリ https://login.microsoftonline.com/tenantid/oauth2/authorize?client_id=clientid(ISH)にリダイレクト

  • に行く
  • AzureADユーザとして署名

    1. - >トークンを返し、 が戻って自分のアプリケーション
    2. へのリダイレクト

    次回は有効なCookieがある場合はアプリケーションを使用しますが、私はmicrosoftonline.comにリダイレクトされず、アプリを直接。要するに

    、私はエンドユーザーのためのポップアップを表示せずにコールバックを取得したいと思います:テナントと一つだけのユーザーを指定した場合

    <script class="pre"> var userAgentApplication = new Msal.UserAgentApplication("your_client_id", null, function (errorDes, token, error, tokenType) { // this callback is called after loginRedirect OR acquireTokenRedirect (not used for loginPopup/aquireTokenPopup) }) userAgentApplication.loginPopup(["user.read"]).then(function(token) { var user = userAgentApplication.getUser(); if (user) { // signin successful } else { // signin failure } }, function (error) { // handle error }); </script>

  • 答えて

    1

    前に紺碧の広告に署名されている、あなたは可能性prompt=none(デフォルト)の場合は、アプリに直接ログインしてください。あなたはMSAL.JSで、MSAL.JSのソースコードを参照することを達成することはできません。

    var urlNavigate = authenticationRequest.createNavigateUrl(scopes) + "&prompt=select_account" + "&response_mode=fragment"; 
    

    それは、アカウントページを選択するようにユーザーをリダイレクトしますprompt=select_accountを設定します。 Azure ADアカウントを使用していて、特定のテナントにログインしたいのであれば、ADAL.JSを試すことができます(prompt = select_accountを強制しません)。マルチテナントアプリの場合(テナントIDの代わりにcommonを使用)、azure ad v2.0エンドポイントを持つユーザー選択ページは避けられません。

    注意:ユーザーが複数のアカウントを持つ晴れやかな広告にサインインしている場合、ユーザーがページを選択するのを避けることはできません。つまり、設計上、ユーザーはサインインに使用するアカウントを選択する必要があります。アプリケーション。

    +0

    ありがとうございました.ADAL.jsで作業していますが、MSALに移行したいと考えていました。 – thllbrg

    1

    loginPopupの代わりにacquireTokenSilentを使用し、クライアントIDをスコープとして渡します。約束が拒否された場合は、ログインするために他の機能の1つを呼び出す必要があります。

    関連する問題