6

Microsoft ID プラットフォーム用に Azure にアプリを登録しました。MS アカウント (outlook.com など) を許可するように構成し、基本的にここここでいくつかのクイックスタートをオンラインで実行しました(「Web アプリに資格情報を追加する」を除く)。暗黙的なフローを有効にするボックスもチェックしました。

React アプリケーションを URL にリダイレクトして (暗黙的なフローを使用して) サインインします。ユーザー名を入力する必要がありますが、

無許可クライアント: クライアントが存在しないか、コンシューマーに対して有効になっていません。アプリケーション開発者である場合は、Azure ポータル ( https://go.microsoft.com/fwlink/?linkid=2083908 ) のアプリ登録を通じて新しいアプリケーションを構成します。

上で述べたように、いくつかのクイック スタートを実行し、ここで暗黙的なフローについて読み、コードの例に従いました。

また、アプリの登録を削除して最初からやり直してみました。運がない。

Implicit Flow を実装しようとしている JS コード

Microsoft の暗黙的なフロー ページの最初の例のように見える URL にブラウザをリダイレクトする JS コード

goSignIn() {
    const tenant = 'common'; // (for us with MS accounts)
    const clientId = '*****';
    const redir = encodeURIComponent('http://localhost:3000/signin');
    const nonce = Math.round(Math.random() * 10000, 0);
    const uriTemplate = 'https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?client_id={clientId}&response_type=id_token+token&redirect_uri={redirect}&scope=openid&response_mode=fragment&state={state}&nonce={nonce}';
    const filledTemplate = uriTemplate
      .replace('{tenant}', tenant)
      .replace('{clientId', clientId)
      .replace('{redirect}', redir)
      .replace('{nonce}', nonce)
      .replace('{state}', nonce);
    console.log(filledTemplate);
    window.location = filledTemplate;
  }

Azure でのアプリ構成:

Azure -> ID -> アプリの登録 -> MyApp -> 認証

  • リダイレクト URI: http://localhost:3000/signin (React アプリは 3000 で実行され、/signin 用に構成されたルートがあります)
  • 推奨されるリダイレクトを使用していません。
  • ID Token と Access Token の Implicit チェックボックスをオンにしました
  • ライブ SDK サポートが有効
  • サポートされているアカウントの種類は、「組織のディレクトリ内のアカウントと個人の Microsoft アカウント (Skype、Xbox、Outlook.com など)」に設定されています。

Azure -> ID -> アプリの登録 -> MyApp -> API のアクセス許可

  • MS グラフ
    • ユーザー.読み取り
    • Eメール
    • プロフィール
    • openid

私が読んだドキュメントから、私は id トークンに対して十分なことをしたと思いました。それを機能させるためにどのような微調整を行う必要があるのか​​ わかりません。

4

2 に答える 2

1

このような問題が発生しました。私が犯した間違いはアプリ ID に関係しています。クライアント シークレットを作成すると、Azure UI にシークレットとシークレット ID が表示されます。このシークレット ID は、アプリの構成で使用するものではありません。代わりに、概要ページにあるアプリケーション ID が必要です。

このエラー メッセージを生成する構成上の問題が多数あると思います。一般に、アプリが見つからないというエラーが発生した場合は、アプリ ID に細心の注意を払ってください。

于 2022-01-11T17:26:21.417 に答える