SlideShare a Scribd company logo
msal.js v2を触る
2020.08 .NETラボ
誰?
@DevTakas
Angular / Azure / .NET Core / Azure DevOps / Microsoft Graph
Microsoft MVP Office Development(新人)
誰?
ブログやってます
http://takasdev.hatenablog.com/
「はまったりひらめいたり…とか…」
おしながき
1. msal.jsとは
2. v2になって変わったこと
3. PKCEについて
4. msal.js v2の使い方
5. まとめ
6. 参考文献
(そもそも)msal.jsとは
• Micro Soft Authentication Library
• Azure ADアプリケーションで保護されたWeb APIリソースなど
にアクセスするためのトークン取得支援を行うライブラリ
• Js以外にも.NET/Java等の様々な言語のライブラリが存在
• AzureAD v2.0エンドポイント対応ライブラリ
• V1.0対応エンドポイント対応ライブラリはADAL
(そもそも)msal.jsとは
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/v2-oauth2-auth-code-flow より抜粋
V2のリリース
• 2020年7月20日に2.0.0リリース
• 現在(2020年8月22日)は2.0.2
• Azure AD B2Cにはまだ使えないらしい
• 2.1.0の実装予定の機能なんかももう予告されている
• https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser
V2になって変わったこと
- 構成の変化
https://github.com/AzureAD/microsoft-authentication-library-for-js より抜粋
msal-core
V2になって変わったこと
-機能面
• いくつかのインタフェース変更
• PublicClientApplicationへの変更等…(v2の使い方で紹介)
• PKCE(ピクシー)に対応
PKCE
- Implicit Flowの問題点
• Proof Key for Code Exchange
• AngularやVueといったSPA構成でよく使用される
「暗黙的な許可フロー(Implicit Flow)」
• Implicit Flowには認可コード横取り攻撃が可能な問題が存在
• Implicit Flowは認可コードを用いることで認証なしに
アクセストークンを取得するフロー
• Implicit Flowは認可コードを用いてアクセストークンを取得する。
悪意のあるアプリケーションは認可コードを横取りすることで
認証なしにアクセストークンを取得することができるようになる
PKCE
- Implicit Flowの問題点
認可コード合って
るしおk
PKCE
- 改善内容
• code_verifier を使用する
1. 認証時
• 下記を付与した通信を行い認可コード取得
• 「code_verifierを変換した値(code_challenge)」
• 「変換方法(code_challenge_method)」
2. アクセストークン取得時
• 「code_verifier」を付与した通信を行う
• 認可サーバー上で下記を実施し検証を行う。
• 1.で送付されたcode_challenge_methodで、送付されたcode_verifierを変換
• code_challengeと一致するか検証
PKCE
- Implicit Flowの問題点
code_verifier
code_challenge_method
code_challenge
code_verifier
code_challenge_method
変換
比較
code_challenge
code_verifier
code_challenge_method
変換
PKCE
- Implicit Flowの問題点
code_verifierは?
code_challenge / code_challenge_method
Browserインスタンスにしか存在しない
PKCE
-使用されているVerifierについて(msal.js)
• initializeAuthorizationCodeRequestがエントリ
• ここから追いかければCodeVerifierなどの生成手順がわかる
• https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/84a5f5aed0ad1626e6d918fb2ef0393837aac3c6/lib/msal-browser/src/app/PublicClientApplication.ts#L733
• より具体的にはPkceGenerator
• 32バイト長のUTF-8ランダム配列
• Code Challenge
• SubtleCrypt.Digestを使用しSHA256ハッシュ変換
• SubtleCrypt.Digestは↓参照
• https://developer.mozilla.org/ja/docs/Web/API/SubtleCrypto/digest
• RFC7636 Section-4.1のドキュメント準拠な設定
• sessionStorageなどに保存している気配はないので
インスタンスのライフサイクルと同等?
PKCE
-使用されているVerifierについて(msal.js)
code_challenge=-sv8RwaJ1xym7g-lYKudrBLa1Lvc3Ufn6enfhdpXXk8&code_challenge_method=S256
PKCE
-使用されているVerifierについて
• あくまで「認可コード要求」と「トークン要求」の
クライアントが一致しているかを検証するもの
• 認可コード要求時点から攻撃されている状態だと
対処できないので注意
• 攻撃用サイトでログイン要求されるとか…
• redirect_url/CORSなど基本の設定はしっかり行っておく
msal.js v2の使い方
- Azure AD アプリケーションの設定
• 認可サーバー(Azure AD)でコード検証フローが発生するので
専用の設定を行う必要がある
msal.js v2の使い方
- コードの実装
• 基本の流れはv1のときと同じ
1. クライアントインスタンスの生成
2. ログイン
3. アカウント情報の取得
4. アクセストークンの取得
msal.js v2の使い方
- 1.クライアントインスタンスの生成
• PublicClientApplication インスタンスの生成
• V1同様生成時に使用するADアプリの設定情報が必要
• アプリケーションクライアントID
• 特定テナントの指定(任意)
• リダイレクトURI(任意)
const _client = new PublicClientApplication({
auth: {
clientId: ‘xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx’,
authority: ‘https://login.microsoftonline.com/<テナントID>/’,
redirectUri: ‘<リダイレクトURI>’
}
})
msal.js v2の使い方
- 1.クライアントインスタンスの生成(設定内容)
export declare type Configuration = {
auth?: {
clientId: string – AzureADアプリケーションID(必須)
authority?: string – 特定のテナントを使用したい場合に使用
knownAuthorities?: Array<string> - 有効URI配列(B2Cで使用)
cloudDiscoveryMetadata?: string – クラウド検出文字列※1
redirectUri?: string – 認証画面後戻ってくるURL。AzureADアプリに設定されているURLでないといけない
postLogoutRedirectUri?: string – ログアウト後遷移するURL
navigateToLoginRequestUrl?: boolean – リダイレクトページを固定させたいかどうかの指定
};
cache?: {
cacheLocation?: string – トークン格納ストレージの選択 ‘sessionStorage/localStorage’
storeAuthStateInCookie?: boolean – 認証状態のCookie格納
};
system?: {
loggerOptions?: LoggerOptions – ロギング設定※3
networkClient?: INetworkModule – ネットワークうインタフェースの実装(詳細調査中)
windowHashTimeout?: number – ポップアップの待機時間の変更
iframeHashTimeout?: number – iFrameの待機時間の変更
loadFrameTimeout?: number – Frameロード待機時間の変更
};
};
※1:詳細はhttps://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/performance.md 参照
※2: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/09243eb985138d9c39194c3eb84b28cf7a8d8f25/lib/msal-browser/src/request/RedirectRequest.ts 参照
※3: https://docs.microsoft.com/ja-jp/azure/active-directory/develop/msal-logging?tabs=javascript 参照
msal.js v2の使い方
- 2.ログイン
• 1.で作成したクライアントを使用してログインする
• これもv1時代と流れは大きくは変わらない
• ポップアップかリダイレクト
• リダイレクトの場合はcallbackを引っ掛ける仕掛けが必要
• V1と違ってcallbackがpromise(handleRedirectPromise)になっている
• ポップアップはPromise返却されるので、awaitかthenで引っ掛ける
• スコープの指定やリダイレクトURIの指定など…
//リダイレクト:asyncなFunctionの中で実行した場合。結果はresに格納される
const res = await this._client.handleRedirectPromise();
this._client.loginRedirect({ scopes: [‘user.read’]});
// ポップアップ:asyncなFunctionの中で実行した場合。結果はresに格納される
const res = await this._client.loginPopup({ scopes: [‘user.read’]});
msal.js v2の使い方
- 3.アカウントの取得
• v1とログインアカウントの取得の仕方が大きく違う
• v1はユーザー取得インターフェースがクライアントにあったが
v2からは消されている。
• ログイン時に返却される情報から抜いてこないといけなくなった
//リダイレクト:asyncなFunctionの中で実行した場合。結果はresに格納されるのでそこから取得
const res = await this._client.handleRedirectPromise();
const account = res.account;
// ポップアップ:asyncなFunctionの中で実行した場合。結果はresに格納されるのでそこから取得
const res = await this._client.loginPopup({ scopes: [‘user.read’]});
const account = res.account;
msal.js v2の使い方
- 4.アクセストークンの取得
• v1と大きく変わらない
• acquireToken(Silent/Redirect/Popup)で取得する
• Silent/Popupは例のごとくPromiseで値返却
• RedirectはhandleRedirectPromiseで
//リダイレクト:asyncなFunctionの中で実行した場合。結果はresに格納されるのでそこから取得
const res = await this._client.handleRedirectPromise();
const accessToken = res.accessToken;
this._client.acquireTokenRedirect({scopes:[‘user.read’]})
// ポップアップ:asyncなFunctionの中で実行した場合。結果はresに格納されるのでそこから取得
const res = this._client.acquireTokenSilent({scopes:[‘user.read’]})
const accessToken = res.accessToken;
msal.js v2の使い方
- コードの実装
• msal.js を使用したv1との違いを実際に見てみる
まとめ
• msal.js v2がリリースされた
• v2の大きな変更はPKCEへの対応が一番大きい
• セキュリティ上、PKCE対応を行っておくほうが良い
• はよv2に移行しようね
• v2の使い方は大きくは変わらない
• はよv2に(ry
参考文献
• AzureAD/microsoft-authentication-library-for-js
• https://github.com/AzureAD/microsoft-authentication-library-for-js
• Microsoft ID プラットフォームの認証ライブラリ
• https://docs.microsoft.com/ja-jp/azure/active-directory/develop/reference-v2-libraries
• Microsoft ID プラットフォームと暗黙的な許可のフロー
• https://docs.microsoft.com/ja-jp/azure/active-directory/develop/v2-oauth2-implicit-grant-flow
• RFC6749 - 4.1.2. Authorization Response
• https://tools.ietf.org/html/rfc6749#section-4.1.2
• RFC7636
• https://tools.ietf.org/html/rfc7636
• OAuth 2.0 Security Best Current Practice
• https://tools.ietf.org/html/draft-ietf-oauth-security-topics-14#section-2.1.2
• PKCE で防げる「認可コード横取り攻撃」とはどのような攻撃か
• https://qiita.com/samiii/items/9574d1e237228c718cd6
• Auth0を利用してOAuth 2.0のPKCEを理解する
• https://dev.classmethod.jp/articles/oauth-2-0-pkce-by-auth0/

More Related Content

What's hot

Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれ
DevTakas
 
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)Amazon Web Services Japan
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Masayuki Ozawa
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
Amazon Web Services Japan
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜
Masaru Kurahayashi
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
pospome
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Web Services Japan
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual network
Kuniteru Asami
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門
Masahito Zembutsu
 
Azure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみたAzure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみた
DevTakas
 
はじめてのAmazon Aurora
はじめてのAmazon AuroraはじめてのAmazon Aurora
はじめてのAmazon Aurora
Jun Okubo
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
 
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
Amazon Web Services Japan
 
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP Nagoya
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
Shunsuke Michii
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
 
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
 

What's hot (20)

Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれ
 
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
[AWSマイスターシリーズ]Amazon Elastic Load Balancing (ELB)
 
Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎Sql server のバックアップとリストアの基礎
Sql server のバックアップとリストアの基礎
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual network
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門
 
Azure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみたAzure Web PubSub Serviceを触ってみた
Azure Web PubSub Serviceを触ってみた
 
はじめてのAmazon Aurora
はじめてのAmazon AuroraはじめてのAmazon Aurora
はじめてのAmazon Aurora
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
 
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
 
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
 
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixivUsing ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
 

Similar to msal.js v2を触る

G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
Trainocate Japan, Ltd.
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
Hiroshi Okunushi
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
kekekekenta
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
Daisuke Masubuchi
 
俺とKubernetes
俺とKubernetes俺とKubernetes
俺とKubernetes
Masayuki KaToH
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
Suguru Ito
 
Microsoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
Tsukasa Kato
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
Akira Inoue
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows AzureMicrosoft
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
Naoki (Neo) SATO
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版)
Takamasa Maejima
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
tak-nakamura
 
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション
de:code 2017
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
 
Moot2013 moca ver0.3
Moot2013 moca ver0.3Moot2013 moca ver0.3
Moot2013 moca ver0.3科 黄
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
日本マイクロソフト株式会社
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
Shinichiro Arai
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Kazuki Takai
 

Similar to msal.js v2を触る (20)

G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
 
俺とKubernetes
俺とKubernetes俺とKubernetes
俺とKubernetes
 
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
開発者なのに運用で手がいっぱい? そんなあなたに贈る、 クラウド時代に最適な OSS の RDBMS ! Azure Database for MySQL...
 
Microsoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
 
PHP on Windows Azure
PHP on Windows AzurePHP on Windows Azure
PHP on Windows Azure
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
 
Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版) Azure IaaS update (2018年6月~7月 発表版)
Azure IaaS update (2018年6月~7月 発表版)
 
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発多分モダンなWebアプリ開発
多分モダンなWebアプリ開発
 
[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション[MW11] OSS on Azure で構築する ウェブアプリケーション
[MW11] OSS on Azure で構築する ウェブアプリケーション
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
Moot2013 moca ver0.3
Moot2013 moca ver0.3Moot2013 moca ver0.3
Moot2013 moca ver0.3
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
Azure Arc Jumpstart - Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築
 

More from DevTakas

Microsoft Graph Toolkitで手軽にM365フロント開発
Microsoft Graph Toolkitで手軽にM365フロント開発Microsoft Graph Toolkitで手軽にM365フロント開発
Microsoft Graph Toolkitで手軽にM365フロント開発
DevTakas
 
Azure Artifactsを触ってみよう
Azure Artifactsを触ってみようAzure Artifactsを触ってみよう
Azure Artifactsを触ってみよう
DevTakas
 
Microsoft Graph Toolkitを使ってGraph開発を体験しよう
 Microsoft Graph Toolkitを使ってGraph開発を体験しよう Microsoft Graph Toolkitを使ってGraph開発を体験しよう
Microsoft Graph Toolkitを使ってGraph開発を体験しよう
DevTakas
 
Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編
Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編
Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編
DevTakas
 
ASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おうASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おう
DevTakas
 
Microsoft Graphのことはじめ
Microsoft GraphのことはじめMicrosoft Graphのことはじめ
Microsoft Graphのことはじめ
DevTakas
 
Azure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取るAzure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取る
DevTakas
 
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
DevTakas
 
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
DevTakas
 
Azure AD Application を使用した認証のアレコレ
Azure AD Applicationを使用した認証のアレコレAzure AD Applicationを使用した認証のアレコレ
Azure AD Application を使用した認証のアレコレ
DevTakas
 
Microsoft Graphの変更通知で遊ぶ
Microsoft Graphの変更通知で遊ぶMicrosoft Graphの変更通知で遊ぶ
Microsoft Graphの変更通知で遊ぶ
DevTakas
 
Microsoft Graphを使ってアプリケーションを作った時の話
Microsoft Graphを使ってアプリケーションを作った時の話Microsoft Graphを使ってアプリケーションを作った時の話
Microsoft Graphを使ってアプリケーションを作った時の話
DevTakas
 
Microsoft Graphことはじめ クエリパラメータ編
Microsoft Graphことはじめ クエリパラメータ編Microsoft Graphことはじめ クエリパラメータ編
Microsoft Graphことはじめ クエリパラメータ編
DevTakas
 
Microsoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたMicrosoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてた
DevTakas
 
AzureADの認証で失敗した話
AzureADの認証で失敗した話AzureADの認証で失敗した話
AzureADの認証で失敗した話
DevTakas
 
msal.jsを使う
msal.jsを使うmsal.jsを使う
msal.jsを使う
DevTakas
 

More from DevTakas (16)

Microsoft Graph Toolkitで手軽にM365フロント開発
Microsoft Graph Toolkitで手軽にM365フロント開発Microsoft Graph Toolkitで手軽にM365フロント開発
Microsoft Graph Toolkitで手軽にM365フロント開発
 
Azure Artifactsを触ってみよう
Azure Artifactsを触ってみようAzure Artifactsを触ってみよう
Azure Artifactsを触ってみよう
 
Microsoft Graph Toolkitを使ってGraph開発を体験しよう
 Microsoft Graph Toolkitを使ってGraph開発を体験しよう Microsoft Graph Toolkitを使ってGraph開発を体験しよう
Microsoft Graph Toolkitを使ってGraph開発を体験しよう
 
Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編
Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編
Azure ADアプリケーションを使用した認証のあれやこれ ASP.NET Core編
 
ASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おうASP.NET Core WebAPIでODataを使おう
ASP.NET Core WebAPIでODataを使おう
 
Microsoft Graphのことはじめ
Microsoft GraphのことはじめMicrosoft Graphのことはじめ
Microsoft Graphのことはじめ
 
Azure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取るAzure Event HubsでGraph変更通知を受け取る
Azure Event HubsでGraph変更通知を受け取る
 
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
僕はあなたを監視する(MS Graph Subscriptionのβで公開されたpresencesを使おう!)
 
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話TeamsのチャネルとやりとりするWeb Applicationを作ったお話
TeamsのチャネルとやりとりするWeb Applicationを作ったお話
 
Azure AD Application を使用した認証のアレコレ
Azure AD Applicationを使用した認証のアレコレAzure AD Applicationを使用した認証のアレコレ
Azure AD Application を使用した認証のアレコレ
 
Microsoft Graphの変更通知で遊ぶ
Microsoft Graphの変更通知で遊ぶMicrosoft Graphの変更通知で遊ぶ
Microsoft Graphの変更通知で遊ぶ
 
Microsoft Graphを使ってアプリケーションを作った時の話
Microsoft Graphを使ってアプリケーションを作った時の話Microsoft Graphを使ってアプリケーションを作った時の話
Microsoft Graphを使ってアプリケーションを作った時の話
 
Microsoft Graphことはじめ クエリパラメータ編
Microsoft Graphことはじめ クエリパラメータ編Microsoft Graphことはじめ クエリパラメータ編
Microsoft Graphことはじめ クエリパラメータ編
 
Microsoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてたMicrosoft Graph完全に理解した気がしてた
Microsoft Graph完全に理解した気がしてた
 
AzureADの認証で失敗した話
AzureADの認証で失敗した話AzureADの認証で失敗した話
AzureADの認証で失敗した話
 
msal.jsを使う
msal.jsを使うmsal.jsを使う
msal.jsを使う
 

msal.js v2を触る