smithery/kk0ga

entra-msal-auth-spa

Entra ID(Microsoft Entra ID)+ MSAL(PKCE)でReact SPAの認証を実?

Installation

$ npx skills add smithery/kk0ga --skill entra-msal-auth-spa

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/kk0ga.

npx skills add smithery/kk0ga

Browse all from smithery/kk0ga

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseMIT

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,472 B
  • docs SUMMARY.md 422 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Entra ID + MSAL Auth (SPA) Skill

目的

勤怠システムの認証を Entra ID(OIDC Authorization Code + PKCE) で実装し、 「動く」だけでなく 運用・失敗時UX・セキュリティ まで含めて整える。

最重要ルール(このリポジトリ方針)

  • SPAなので XSS 対策を最優先(dangerouslySetInnerHTML は原則禁止)
  • アクセストークンを localStorage に永続保存しない(memory / sessionStorage)
  • トークン・個人情報(mail, oid 等)を console に出さない

進め方(推奨手順)

  1. 環境変数の整理(秘密情報は置かない)

- VITEENTRACLIENTID - VITEENTRATENANTID - VITEENTRAREDIRECT_URI(GitHub Pages の basePath を含める)

  1. MSAL の初期化(起動時に必ず実行)

- PublicClientApplication.initialize() - handleRedirectPromise() - これを「アプリ描画より前」に行い、ログイン状態を一貫させる

  1. ログイン/ログアウト導線

- ログイン: loginRedirect()(必要なら prompt 指定) - ログアウト: logoutRedirect() - ログイン済みで /login に来たら、通常はダッシュボードへ誘導

  1. ルートガード(未ログインは /login)

- ルーティング層で「保護ルート」を定義し、未ログインは redirect() - “一部だけ公開” の画面(/about など)を明確に分ける

  1. トークン取得方針

- 第一選択: acquireTokenSilent() - 失敗時のみ: acquireTokenRedirect()(ユーザー操作が必要なケースのフォールバック) - scope は最小化(必要なGraph権限のみ)

失敗時のUX(必須)

  • 401/403

- 再ログイン導線 or 権限不足の案内(管理者へ連絡導線)

  • interactionrequired / loginrequired

- UIで「再ログインが必要」と明示し、インタラクティブに誘導

  • 429/503

- すぐにログインし直させず、Graph呼び出し側でリトライを検討

GitHub Pages(Hashルーティング)注意

  • SPAルーティングはHashを使うと Pages 側の404問題を避けやすい
  • ただし redirectUri は # を含めない(IdPの戻り先は通常パス部分)
  • Pagesの basePath(/repo-name/)を使う構成なら redirectUri にも反映する

成果物(このスキルで必ず出す)

  • .env.example に必要なキー(値はダミー)
  • ルートガード仕様(公開/保護ルート一覧)
  • 主要エラーのユーザー表示文言(日本語)

依頼例

  • 「Entra ID + MSAL のログインを導入して、未ログイン時は /login に飛ばしたい」
  • 「acquireTokenSilent を優先して、失敗時だけredirectフォールバックしたい」
  • 「GitHub Pages(Hashルーティング)でMSALのredirectUriをどうするべき?」

References

  • [docs/README.md](../../../docs/README.md)