Okta
オクタ
はじめに
Auth0 New Universal Loginでは、2つの画面カスタマイズ方法があります。本ページでは、「ページテンプレートを使用した」New Universal Login画面カスタマイズの実現例をご紹介します。
- Auth0管理画面上でのカスタマイズ
- 配色、ロゴ、表示文言等をノーコードで変更可能
- 詳細は、Auth0ユニバーサルログイン機能について ~ログインページ等の画面カスタマイズを参照
- ページテンプレートを使用したカスタマイズ
- Liquidテンプレート言語によるページテンプレートを用いて、背景色のグラデーション設定、ヘッダー・フッターの追加等が可能
- ページテンプレートは、Management API経由で適用
前提
本ページ記載の機能及び設定に関する内容は、2023年6月現在の情報となります。
ページテンプレートを使用したカスタマイズには、対象Auth0テナントにて、カスタムドメイン設定が必要です。カスタムドメイン設定の詳細は、Auth0カスタムドメイン設定方法をご確認ください。
機能概要
- Liquidテンプレート言語
Shopifyが公開しているオープンソースであり、HTMLとデータの橋渡しの役割をします。
Liquidテンプレート言語を使用することで、静的なHTMLに、動的なユーザ情報等のデータを容易に埋め込み、Webブラウザで表示することができます。 - ページテンプレート
Auth0では、Liquidによるページテンプレートを用いて、ログインフロー内全てのページをカスタマイズできます。カスタマイズの際は、全てのページを共通のHTMLで編集します。 - ページテンプレート適用方法
Management API:/api/v2/branding/templates/universal-loginを介して、ページテンプレートを適用します。適用操作は、Management API Explorerからの実行、curlコマンドによる実行等となります。
カスタマイズ設定概要
- ページテンプレート作成
カスタマイズ内容をHTMLで記述します。
New Universal Login画面カスタマイズにて、HTML記述に必須となるタグは、以下の通りです。
必要なタグ | 留意事項 |
{%- auth0:head -%} |
|
{%- auth0:widget -%} |
|
利用可能な変数や作成例は、Customize New Universal Login Pages - Auth0 docsをご確認ください。
- Management APIアクセストークン発行
カスタマイズ適用のため、Management APIのアクセストークンを発行します。
- curlコマンドによるカスタマイズ適用
本ページの設定例では、curlコマンド実行により、カスタマイズを適用します。curl コマンド実行時(Linux 環境)には、以下の通りオプションを指定します。
- Management API URL:/api/v2/branding/templates/universal-login ※カスタムドメイン指定
- Management APIアクセストークン
- content-type:text/html
- カスタマイズ内容を記述したHTML
なお、context-typeの指定に応じて、HTML記述のフォーマット変更が必要です。
context-type | 留意事項 |
text/html |
|
application/json |
|
- カスタマイズ結果確認
Auth0連携Webアプリケーションを用いて、New Universal Login画面にカスタマイズ内容が反映されているかを確認します。
カスタマイズ設定例
簡単なカスタマイズ例を2点ご紹介します。
いずれも、事前にAuth0連携Webアプリケーションを用意します。Auth0とサンプルアプリケーションの連携方法は、Auth0とサンプルアプリケーションの連携設定方法をご確認ください。
背景色/グラデーション追加
- ページテンプレート作成
1. 背景色における上下方向のグラデーション設定をHTMLで記述
<!DOCTYPE html>
<html lang="{{locale}}">
<head>
{%- auth0:head -%}
<style>
body{
//上下方向のグラデーション(画面上部の色,画面下部の色)
background-image: linear-gradient(#ffffff, #afeeee);
}
</style>
<title>
{{ prompt.screen.texts.pageTitle }}
</title>
</head>
<body class="_widget-auto-layout">
{%- auth0:widget -%}
</body>
</html>
2. 作成したHTML記述の改行を削除し、一行のテキストに変更
<!DOCTYPE html><html lang="{{locale}}"> <head>{%- auth0:head -%}<style> body{ background-image: linear-gradient(#ffffff, #afeeee); }</style><title> {{ prompt.screen.texts.pageTitle }} </title> </head> <body class="_widget-auto-layout">{%- auth0:widget -%} </body></html>
- Management APIアクセストークン発行
1. Auth0管理画面で、[Applications] > [APIs]をクリック
2. Auth0 Management APIをクリック
3. [Test]タブをクリック ※今回はテスト用途のアクセストークンを利用
4. Response欄のaccess_token値をコピー
- curlコマンドによるカスタマイズ適用
- 以下コマンドを実行し、カスタマイズ内容を適用
> curl --request PUT --url 'https://<設定済カスタムドメイン>/api/v2/branding/templates/universal-login' --header 'authorization: Bearer eyJhbGciOiJSUzI1NiIs...(略)...Z2LGsGdBICdLedwUClQaMu0Q' --header 'content-type: text/html' --data '<!DOCTYPE html><html lang="{{locale}}"> <head>{%- auth0:head -%}<style> body { background-image: linear-gradient(#ffffff, #afeeee); }</style><title> {{ prompt.screen.texts.pageTitle }} </title></head> <body class="_widget-auto-layout">{%- auth0:widget -%} </body></html>'
- カスタマイズ結果確認
1. Auth0連携済Webアプリケーション画面において、ログイン操作を実施
2. ログイン画面(New Universal Login)にて、背景色にグラデーションが追加されていることを確認
ヘッダー追加
- ページテンプレート作成
1. ヘッダー追加設定をHTMLで記述
<!DOCTYPE html> <html lang="{{locale}}"> <head> {%- auth0:head -%} <style> .header { background-color: #add8e6; //ヘッダーの背景色 position: fixed; //ウィンドウをもとに絶対位置を指定 top: 0; //上からの位置 width: 100%; //ヘッダーの幅 padding: 16px 0; //ヘッダーの内側の余白(上下,左右) color: #ffffff; //ヘッダーの文字色 } .header ul { text-align: center; //ulの中の文字は中央寄せ } .header ul li { display: inline-block; //liの中をulのinlineに追加 } </style> <title> {{ prompt.screen.texts.pageTitle }} </title> </head> <body class="_widget-auto-layout"> {%- auth0:widget -%} <header class="header"> //ヘッダーの追加 <ul> <li>ここはヘッダーです</li> //ヘッダー内の文字 </ul> </header> </body> </html>
2. 作成したHTML記述の改行を削除し、一行のテキストに変更
<!DOCTYPE html><html lang="{{locale}}"> <head>{%- auth0:head -%} <style>.header { background-color: #add8e6; position: fixed; top: 0; width: 100%; padding: 16px 0; color: #ffffff;}.header ul {text-align: center; } .header ul li {display: inline-block;}</style><title> {{ prompt.screen.texts.pageTitle }} </title></head> <body class="_widget-auto-layout">{%- auth0:widget -%}<header class="header"> <ul><li>ここはヘッダーです</li> </ul></header></body></html>
- Management APIアクセストークン発行
- [背景色/グラデーション追加]と同様に、アクセストークンを発行
- curlコマンドによるカスタマイズ適用
- 以下コマンドを実行し、カスタマイズ内容を適用
> curl --request PUT --url 'https://<設定済カスタムドメイン>/api/v2/branding/templates/universal-login' --header 'authorization: Bearer eyJhbGciOiJSUzI1NiIs...(略)...Z2LGsGdBICdLedwUClQaMu0Q' --header 'content-type:text/html' --data '<!DOCTYPE html><html lang="{{locale}}"> <head>{%- auth0:head -%} <style>.header { background-color: #add8e6; position: fixed; top: 0; width: 100%; padding: 16px 0; color: white;}.header ul {text-align: center; }.header ul li {display: inline-block;}</style><title> {{ prompt.screen.texts.pageTitle }} </title></head> <body class="_widget-auto-layout">{%- auth0:widget -%}<header class="header"> <ul><li>ここはヘッダーです</li></ul></header></body></html>'
- カスタマイズ結果確認
1. Auth0連携済Webアプリケーション画面において、ログイン操作を実施
2. ログイン画面(New Universal Login)にて、ヘッダーが追加されていることを確認
おわりに
本ページでは、New Universal Login画面カスタマイズ方法として、ページテンプレートを使用した実現例をご紹介しました。Auth0管理画面上で提供されるカスタマイズ機能と比較して、より細かなカスタマイズが可能です。
無償のAuth0トライアル環境においても、New Universal Login画面カスタマイズをお試しいただけます。New Universal Login画面のカスタマイズにご興味がある方は、是非弊社までお問い合わせください。
参考
お問い合わせ・資料請求
株式会社マクニカ Okta 担当
- TEL:045-476-2010
- E-mail:okta@macnica.co.jp
平日 9:00~17:00