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 トークンに対して十分なことをしたと思いました。それを機能させるためにどのような微調整を行う必要があるのか わかりません。