> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> アイデンティティおよびアクセス管理（IAM）というソフトウェア分野の基本的な概要。初めてこの分野に触れる方向け

# アイデンティティおよびアクセス管理（IAM）入門

<div id="what-is-identity-and-access-management-iam">
  ## アイデンティティおよびアクセス管理 (IAM) とは？
</div>

アイデンティティおよびアクセス管理は、ユーザーのバリデーションとリソースへのアクセスを制御する仕組みです。一般に IAM と呼ばれるこの技術により、適切な人が、適切な理由で、適切なタイミングで、適切なデジタルリソースにアクセスできるようになります。

<div id="iam-basic-concepts">
  ## IAM の基本概念
</div>

IAM を理解するには、いくつかの基本概念を押さえておく必要があります。

* **デジタルリソース**とは、コンピューターシステム内のアプリケーションやデータのあらゆる組み合わせを指します。デジタルリソースの例としては、Web アプリケーション、API、プラットフォーム、デバイス、データベースなどがあります。
* IAM の中核となるのは**アイデンティティ**です。誰かがあなたのリソースへのアクセスを求めています。それは顧客、従業員、会員、参加者などかもしれません。IAM では、**ユーザー**アカウントは <Tooltip tip="デジタルアイデンティティ: 特定のアプリケーションによって提供される機能のコンテキストにおいて、特定のユーザーを定義する属性の集合。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=digital+identity">デジタルアイデンティティ</Tooltip>です。ユーザーアカウントは、ソフトウェア、Internet of Things デバイス、ロボットなど、人間以外の存在を表すこともあります。

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4jZPLvwFRGMSCBRv6ksLqb/c177b6d17213af76dfe50fb1aacc27d1/intro-iam-user-wants-resource.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=d34920263b8f0b6386f609d56addf358" alt="リソースにアクセスするユーザーを示すシンプルな図" width="1786" height="512" data-path="docs/images/cdy7uua7fh8z/4jZPLvwFRGMSCBRv6ksLqb/c177b6d17213af76dfe50fb1aacc27d1/intro-iam-user-wants-resource.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/translations/6GE5Z24GDCZehiJ9/docs/images/cdy7uua7fh8z/64NhRWH7dFSSTRGv040nIB/bc921e8aa24b0c01112a18debffb08a2/IAM-verifies-access.png?fit=max&auto=format&n=6GE5Z24GDCZehiJ9&q=85&s=8b2bc95383271073a23703b599d607aa" alt="IAM システムがリソースへのユーザーアクセスを制御することを示すシンプルな図" width="1878" height="538" data-path="docs/images/cdy7uua7fh8z/64NhRWH7dFSSTRGv040nIB/bc921e8aa24b0c01112a18debffb08a2/IAM-verifies-access.png" />
</Frame>

* **認証**とは、デジタルアイデンティティを検証することです。誰か (または何か) が、自分が名乗っているそのユーザー本人であることを証明するために認証を行います。
* **認可**とは、ユーザーがどのリソースにアクセスできるかを決定するプロセスです。

<div id="the-difference-between-authentication-and-authorization">
  ## 認証と認可の違い
</div>

認証と認可は、ユーザーにとってはひと続きの体験のように感じられるため、混同されがちです。しかし、これは別々の 2 つのプロセスです。認証はユーザーが本人であることを証明し、認可は特定のリソースへのアクセスを許可または拒否します。

認証および認可は、オフィスビルのセキュリティシステムにたとえるとわかりやすいでしょう。ユーザーは、その建物に入りたい人です。人々がアクセスしたいリソースは、建物内のエリア、つまりフロアや部屋などにあたります。

**認証:** 建物に入るときは、警備員に顔写真付きの ID バッジを見せる必要があります。警備員は、バッジの写真とあなたの顔を見比べます。一致していれば、建物内のさまざまなエリアにアクセスを試せるよう、ドアを通してくれます。警備員は、どの部屋に入れるかまでは判断しません。確認するのは、あなたが名乗っている本人であることだけです。これが認証です。つまり、ユーザー本人であることを確認することです。

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2kbfIgTRNIKNdqJBbgmWQ4/9554142db540d35f669084457abac19b/authentication-building.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=673b4c2f160427b6846b92997ff85375" alt="認証は、警備員が入口であなたのバッジを確認することに似ていることを示す図" width="2068" height="1214" data-path="docs/images/cdy7uua7fh8z/2kbfIgTRNIKNdqJBbgmWQ4/9554142db540d35f669084457abac19b/authentication-building.png" />
</Frame>

**認可:** この場面では、建物内のエレベーターや出入口に、入退室用のキーセンサーが付いていると想像してください。あなたのバッジ内のチップにより、会社が入っている 1 階にしかアクセスできません。ほかの階に入ろうとしてバッジをかざしても、アクセスは拒否されます。自分の個室には入れても、同僚の個室には入れません。備品室には入れても、サーバールームには入れません。これが認可です。つまり、アイデンティティに基づいて、さまざまなリソースへのアクセスを許可または拒否することです。

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2OGIbazhGLOdDB0OVOTyX8/67a4521bd285d84ff958fc94139ecef7/authorization-building.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=c4cd4c48d85d9d090e8b7d65c3a3c83c" alt="認可は、建物内の一部の部屋にだけ入れるバッジに似ていることを示す図" width="2028" height="1472" data-path="docs/images/cdy7uua7fh8z/2OGIbazhGLOdDB0OVOTyX8/67a4521bd285d84ff958fc94139ecef7/authorization-building.png" />
</Frame>

認証および認可についてさらに詳しく知りたい場合は、[Authentication vs. Authorization](/docs/ja-jp/get-started/identity-fundamentals/authentication-and-authorization) をお読みください。

<div id="what-does-iam-do">
  ## IAM は何をするのですか？
</div>

アイデンティティおよびアクセス管理では、ユーザーの検証とリソースへのアクセスを制御できます。

* ユーザーがどのようにシステムに参加するか
* どのユーザー情報を保存するか
* ユーザーがどのように本人確認を行えるか
* ユーザーがいつ、どのくらいの頻度で本人確認を行う必要があるか
* 本人確認の体験
* 誰がどのリソースにアクセスでき、誰がアクセスできないか

IAM は、アプリケーション、API、デバイス、データストア、その他のテクノロジーと連携します。この連携は非常にシンプルな場合もあります。たとえば、Web アプリケーションが認証を完全に Facebook に依存し、認可ポリシーが全面許可か全面拒否のどちらかだけである場合です。アプリは単純な確認を行います。ユーザーが現在のブラウザーで Facebook にログインしていない場合は、ログインするよう案内します。認証が完了すると、すべてのユーザーがアプリ内のすべてにアクセスできます。

しかし、そのような単純な IAM ソリューションで、ユーザー、組織、業界、またはコンプライアンス標準の要件を満たせる可能性は低いでしょう。実際には、IAM は複雑です。ほとんどのシステムでは、次のような機能をいくつか組み合わせて必要とします。

* **シームレスなサインアップとログイン体験:** アプリ内で、ブランドのデザインや言葉づかいに合わせた、スムーズで洗練されたログインおよびサインアップ体験を提供できます。
* **複数のユーザーアイデンティティの提供元:** ユーザーは、さまざまなソーシャル (Google や LinkedIn など) 、エンタープライズ (Microsoft Active Directory など) 、およびその他の[アイデンティティプロバイダー](/docs/ja-jp/authenticate/identity-providers)を使ってログインできることを期待しています。
* **<Tooltip tip="多要素認証 (MFA): SMS 経由のコードなど、ユーザー名とパスワードに加えて別の認証要素を使用するユーザー認証プロセス。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Multi-factor+authentication">多要素認証</Tooltip> (MFA):** パスワードが頻繁に盗まれる時代では、追加の本人確認を求めることが新たな標準になっています。指紋認証やワンタイムパスワードは、一般的な認証方法の例です。詳細については、[Multi-Factor Authentication (MFA)](/docs/ja-jp/secure/multi-factor-authentication) をお読みください。
* **ステップアップ認証:** 高度な機能や機密情報へのアクセスには、日常的な作業やデータよりも強力な本人確認が必要です。ステップアップ認証では、特定の領域や機能に対して追加の本人確認を求めます。詳細については、[Add Step-up Authentication](/docs/ja-jp/secure/multi-factor-authentication/step-up-authentication) をお読みください。
* **<Tooltip tip="攻撃対策: Auth0 が提供する、総当たり攻撃対策、不審な IP スロットリング、漏えいパスワードの検知、ボット検出、適応型多要素認証を含む、攻撃を検出して緩和するための機能。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Attack+protection">攻撃対策</Tooltip>:** ボットや<Tooltip tip="攻撃対策: Auth0 が提供する、総当たり攻撃対策、不審な IP スロットリング、漏えいパスワードの検知、ボット検出、適応型多要素認証を含む、攻撃を検出して緩和するための機能。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=bad+actors">悪意のある攻撃者</Tooltip>によるシステム侵入を防ぐことは、サイバーセキュリティの基本です。詳細については、[Attack Protection](/docs/ja-jp/secure/attack-protection) をお読みください。
* **ロールベースのアクセス制御 (RBAC):** ユーザー数が増えるにつれて、個々のアクセス権を管理することはすぐに現実的でなくなります。RBAC では、同じロールを持つ人には同じリソースへのアクセス権が与えられます。詳細については、[Role-Based Access Control](/docs/ja-jp/manage-users/access-control/rbac) をお読みください。
* **<Tooltip tip="Fine-grained Authorization (FGA): 特定のオブジェクトまたはリソースに個々のユーザーのアクセスを許可する Auth0 製品。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Fine-grained+authorization">きめ細かな認可</Tooltip> (FGA):** リソースやテクノロジーへのユーザーアクセスをより柔軟に管理したい場合は、リレーションベースのアクセス制御を使用して、ロールベースの制御を超えた管理が可能です。特定のリソースへのアクセスを個々のユーザーに付与し、特定のユースケースに最適なソリューションを選択できます。詳細については、[What Is Fine-Grained Authorization?](https://docs.fga.dev/authorization-concepts#what-is-fine-grained-authorization) をお読みください。

こうした複雑さに直面する中で、多くの開発者は独自のソリューションを構築する代わりに、Auth0 のような IAM プラットフォームを利用しています。

<div id="how-does-iam-work">
  ## IAMはどのように機能するのでしょうか？
</div>

「アイデンティティおよびアクセス管理」は、明確に定義された単一のシステムではありません。IAMは、デジタルリソースへの安全なアクセスという課題に対応するための考え方であり、フレームワークの一種でもあります。IAMシステムの実装方法はさまざまです。このセクションでは、一般的な実装に共通する要素とプラクティスを見ていきます。

<div id="identity-providers">
  ### アイデンティティプロバイダー
</div>

以前は、アイデンティティ／アクセス管理の一般的な形として、各システムがユーザーのアイデンティティ情報を自ら作成し、管理していました。ユーザーが新しい Web アプリケーションを使うたびに、アカウントを作成するためのフォームに入力していました。アプリケーションは、ログイン資格情報を含むその情報をすべて保存し、ユーザーがサインインするたびに独自に認証を行っていました。

インターネットの普及とともに利用できるアプリケーションが増えるにつれ、多くの人が、覚えなければならないアカウント名とパスワードをそれぞれ持つ、数え切れないほどのユーザーアカウントを抱えるようになりました。今でもこの仕組みで動いているアプリケーションは数多くあります。しかし現在では、開発・保守の負担やユーザーの手間を減らすために、<Tooltip tip="Identity Provider (IdP): デジタルアイデンティティを保存および管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=identity+providers">アイデンティティプロバイダー</Tooltip>を利用するものも多くあります。

アイデンティティプロバイダーは、アイデンティティ情報を作成、維持、管理し、他のアプリケーションに認証サービスを提供できます。たとえば、Google Accounts はアイデンティティプロバイダーです。ユーザー名、氏名、役職、メールアドレスなどのアカウント情報を保存しています。オンライン雑誌の Slate では、情報をあらためて入力して保存する手間をかけることなく、Google (または別のアイデンティティプロバイダー) でログインできます。

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/2moycObnuKnYfoqFMSGCO0/12aa20de553bfce8afba3cf4f56cbd8d/Slate-login.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=1b880dae486a7324a02544b414ced643" alt="Slate magazine のログイン画面のスクリーンショット" width="2750" height="1786" data-path="docs/images/cdy7uua7fh8z/2moycObnuKnYfoqFMSGCO0/12aa20de553bfce8afba3cf4f56cbd8d/Slate-login.png" />
</Frame>

アイデンティティプロバイダーは、それを利用するアプリにあなたの認証資格情報を共有しません。たとえば Slate があなたの Google パスワードを見ることはありません。Google は、あなたが本人確認を済ませたことだけを Slate に伝えます。

そのほかのアイデンティティプロバイダーには、ソーシャルメディア (Facebook や LinkedIn など) 、エンタープライズ (Microsoft Active Directory など) 、法的アイデンティティプロバイダー (スウェーデンの BankID など) があります。

<div id="authentication-factors">
  ### 認証要素
</div>

認証要素とは、ユーザー本人であることを証明するための手段です。一般的には、次の基本的な種類に分類されます。

| 認証要素の種類         | 例              |
| --------------- | -------------- |
| 知識 (自分が知っているもの) | PIN、パスワード      |
| 所有 (自分が持っているもの) | 携帯電話、暗号キー用デバイス |
| 生体 (自分自身であること)  | 指紋、顔認証、虹彩スキャン  |

IAM システムでは、本人確認のために 1 つ以上の認証要素が必要です。

<div id="authentication-and-authorization-standards">
  ### 認証および認可の標準規格
</div>

認証および認可の標準規格は、次の方法に関する指針を提供する公開仕様およびプロトコルです。

* アイデンティティを管理する IAM システムを設計する
* 個人データを安全に移動する
* 誰がリソースにアクセスできるかを判断する

これらの IAM 業界標準は、最も安全で信頼性が高く、実装しやすいものと考えられています。

<div id="oauth-20">
  #### OAuth 2.0
</div>

<Tooltip tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip>は、API へのアクセスに使用される委譲プロトコルであり、IAM の業界標準プロトコルです。OAuth 2.0 はオープンな認可プロトコルで、ユーザーの資格情報を共有することなく、アプリがユーザーに代わって他のウェブアプリでホストされているリソースにアクセスできるようにします。これは、サードパーティの開発者が Facebook、Google、Twitter などの大規模なソーシャルプラットフォームをログインに利用できるようにする標準です。 詳しくは、[OAuth 2.0 Authorization Framework](/docs/ja-jp/authenticate/protocols/oauth) をご覧ください。

<div id="open-id-connect">
  #### Open ID Connect
</div>

OAuth 2.0 の上に構築されたシンプルなアイデンティティレイヤーである <Tooltip tip="OpenID: アプリケーションがログイン情報を収集・保存しなくても、ユーザーのアイデンティティを検証できるようにする認証のためのオープン標準です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=OpenID">OpenID</Tooltip> Connect (OIDC) を使うと、ユーザーのアイデンティティを簡単に検証し、アイデンティティプロバイダーから基本的なプロファイル情報を取得できます。OIDC もオープン標準のプロトコルです。詳しくは、[OpenID Connect Protocol](/docs/ja-jp/authenticate/protocols/openid-connect-protocol) をご覧ください。

<div id="json-web-tokens">
  #### JSON Web トークン
</div>

<Tooltip tip="JSON Web Token (JWT): 2者間でクレームを安全に表現するために使われる、標準的な ID トークン形式（多くの場合、アクセストークン形式でもあります）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=JSON+web+tokens">JSON Web トークン</Tooltip> (JWT) は、当事者間で情報を JSON オブジェクトとして安全にやり取りするための、コンパクトで自己完結した方法を定義するオープン標準です。JWT はデジタル署名されているため、検証でき、信頼できます。認証済みユーザーのアイデンティティを、アイデンティティプロバイダーと認証を要求するサービスの間で受け渡すために使用できます。また、認証や暗号化を適用することもできます。詳しくは、[JSON Web Tokens](/docs/ja-jp/secure/tokens/json-web-tokens) を参照してください。

<div id="security-assertion-markup-language-saml">
  #### Security Assertion Markup Language (SAML)
</div>

<Tooltip tip="Security Assertion Markup Language (SAML): パスワードを使わずに、2者間で認証情報をやり取りできる標準化されたプロトコル。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Security+Assertion+Markup+Language">Security Assertion Markup Language</Tooltip> (SAML) は、企業が、従業員の利用する提携企業やエンタープライズ アプリケーションに対して、ユーザーの認証および認可に関する情報をやり取りできるようにする、オープンスタンダードの XML ベースのデータ形式です。詳しくは、[SAML](/docs/ja-jp/authenticate/protocols/saml) をご覧ください。

<div id="web-services-federation-ws-fed">
  #### Web Services Federation (WS-Fed)
</div>

Microsoft によって開発され、同社のアプリケーションで広く利用されているこの標準は、アイデンティティ情報と認可情報をやり取りするために、異なるエンティティ間で<Tooltip tip="Security Token: ユーザーが正常に認証されたことを証明するために使用されるデジタル署名付きのデータ。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=security+tokens">セキュリティトークン</Tooltip>を送受信する方法を定義しています。詳しくは、[Web Services Federation Protocol](/docs/ja-jp/authenticate/protocols/ws-fed-protocol) をご覧ください。

<div id="why-use-an-iam-platform">
  ## なぜIAMプラットフォームを利用するのですか？
</div>

なぜこれほど多くの開発者が、独自のソリューションをゼロから構築するのではなく、アイデンティティおよびアクセス管理プラットフォームを基盤に構築することを選ぶのでしょうか。

ユーザーの期待、顧客要件、コンプライアンス基準は、技術的に大きな課題をもたらします。複数のユーザーソース、認証要素、オープンな業界標準に対応する必要があるため、一般的なIAMシステムの構築に必要な知識や作業量は膨大になりがちです。優れたIAMプラットフォームは、あらゆるアイデンティティプロバイダーと認証要素を標準でサポートし、ソフトウェアと簡単に連携できるAPIを提供するとともに、認証および認可には業界で最も安全な標準を採用しています。

IAMソリューションを自社で構築するか購入するか、まだ判断していない方にとっては、[Build vs. Buy: Guide to Evaluating Identity Management](https://auth0.com/resources/whitepapers/build-vs-buy-evaluating-identity-management) が参考になります。
