💡

OpenID ConnectのIDトークン内の「acr」と「amr」解説

2023/12/03に公開

導入

OpenID Connect(OIDC)は、オンラインでのユーザー認証に広く用いられる規格です。このプロトコルは、安全かつ効率的なユーザー認証を可能にし、さまざまなアプリケーションやサービス間での認証情報の共有を簡素化します。この記事では、特にOIDCのIDトークンに焦点を当て、その中の重要な二つのパラメータ「acr」と「amr」について解説します。

「acr」について

「acr」(Authentication Context Class Reference)は、ユーザーの認証プロセスの文脈やセキュリティの強度を示すパラメータです。例えば、ユーザーが多要素認証、バイオメトリクス、またはパスワードベースの認証を使用した場合、これらはそれぞれ異なる「acr」値として表現されます。例として、「urn:authentication:multifactor」は多要素認証を、「urn:authentication:biometric」は生体認証を示します。これらの値は、使用されるOIDCプロバイダ(Identity Provider、IdP)によって異なる場合があります。

「amr」について

一方で「amr」(Authentication Methods References)は、ユーザーが認証される際に具体的にどのような認証方法が使用されたかを示します。これには、パスワードベースの認証(pwd)、ワンタイムパスワード(otp)、多要素認証(mfa)、SMSを介したコード認証(sms)などが含まれます。

acrとamrの違い

「acr」は認証プロセスの文脈やセキュリティ基準を示し、一方で「amr」は具体的に使用された認証方法を示します。これらは、セキュリティとユーザビリティのバランスを取る上で重要な役割を果たします。

実際のIDトークン例

実際のIDトークンでは、これらのパラメータが以下のように表現されることがあります。

{
  "acr": {
    "essential": true,
    "values": ["urn:mace:incommon:iap:silver"]
  },
  "amr": ["pwd", "mfa"]
}

この例では、「acr」が「essential」であることを指定し、特定のセキュリティ基準が必須であることを示しています。また、「amr」には、パスワード(pwd)と多要素認証(mfa)が使用されたことが示されています。

結論

OpenID ConnectのIDトークン内の「acr」と「amr」は、ユーザーの認証プロセスの透明性とセキュリティを向上させる重要な要素です。これらのパラメータによって、アプリケーションやサービスは、ユーザーがどのように認証されたかを正確に理解し、適切なセキュリティ対策を講じることができます。今後も、OIDCはセキュリティとユーザーエクスペリエンスの改善を目指して進化を続けるでしょう。

Discussion