カスタムコントローラへの道』を推します!booth.pm本の内容タイトル通り、Kubernetesのカスタムコントローラの解説本です。話題を良く聞くようになったので正体を知るべくこの本を手に取りました。以下目次から抜粋です。controller-toolsといった関連する周辺知識、サンプルの実装まで非常に丁寧に書かれています。カスタムコントローラについて日本語でここまで分かりやすくてステップ・バイ・ステップで学べる本は他にはないでしょう。:)推しポイントここを推したいというポイントとして2つ挙げます。いった単語が出てきます。それぞれの単語の意味するところと関係性が分かります。最初の章に記載されていることなので、まずこの章を読むだけでも価値があります。実装時にどのツールセットで上記のうちどれを操作するのかについても簡潔に書かれているのも推しポイントでしょう。比較しながら学べる!!この本ではカスタムコントローラの実装方法として何と3つも学ぶことができます。具体的には以下の実装方法を解説しています。使った実装方法これが一番いい方法と決めつけずに実装方法を複数提示されているので、比較しながら自分に合ったカスタムコントローラの実装方法を見つけられるでしょう。私はKuberbuilderによる実装方法が一番しっくりきました。3つも解説されているのにも関わらず丁寧な解説のおかげで、手を動かしながら比較して使いやすいやり方を探せます。Controller)です。書き手として1トピック解説する立場になって考えると、1つ実装方法を解説するだけでも大変なのに3つもとなるとめちゃくちゃハードルが高いです。カスタムコントローラへの深い理解あってこそ書ける内容です。どんな人に推せるか?カスタムコントローラとはなんぞやを知りたい全ての人に推せます。凄いらしいで止まっていて手を動かしたことがない方は必見です。以上、推し本記事でした。AppIDを取りあげます。今年の11月末にSPAでAppIDの認証を簡単に組み込めるようになったというアナウンスがありました。(以下記事参照)www.ibm.com上記のアナウンスは3行だけの簡素すぎる説明ですし、リンク先のドキュメントも英語のみであまり充実しているとは言えません。このアドベントカレンダー記事は、SPAにAppIDを使った認証の組み込み実装例を提示します。雰囲気だけ掴みたい人向けに、サンプルアプリを作りました↓ログインするとQiitaの最新投稿表示するだけのやつです。(ユーザーは誰も登録していないので、投稿表示はできませんが...)イメージとして以下のようなログインボタン、プロフィール表示ボタンを実装してみます。別資料をご参照ください。個人的にはAuth屋さんのOAuth/OIDCシリーズがオススメです。AppIDに関係のある箇所しか解説しません。リファレンスをご参照ください。何ができるようになったのか?実装...の前に「え、今までSPAにAppIDの認証を組み込めなかったの?」と疑問に思われる方向けに補足します。これまでもSPAにAppIDの認証を組み込むことはできていました。具体的には静的コンテンツを配信するバックエンドのWebアプリ(Node.jsで言えばExpressとか)を立ててバックエンド側にサーバーSDKを組み込むことで機能的に実現していました。AppIDの認証を組み込めるようになりました!!SPAを動かす環境にバックエンドが必須ではなくなったため、SPAを開発するチームは静的Webサイトホスティングも使えるようになります。(上記のサンプルアプリもNetlifyで動かしています)実装例ここからがこの記事の本題です。SPAのフレームワークとしてAngularを使って認証の組み込みを進めます。Cloudのアカウント(FreeアカウントでOK)とAppIDインスタンスを作成しておいてください。AppIDにアプリケーションを登録SPAからAppIDに接続するために必要な資格情報を払い出します。CloudのAppID管理画面からアプリケーションタブを選択して「アプリケーションを追加」から登録しましょう。application)」を選択してください。保存ボタンを押せば資格情報を取り出せます。(Service編)まずはSDKをインストールしましょう。ドキュメント通りNPMでインストールします。ibmcloud-appid-js次にAppIDとやり取りする部品を実装します。認証のような他のコンポーネントでも共通で利用できる機能は、AngularのServiceとして切り出すと取り回しやすいです。SDKを使ったAuthServiceを作成しましょう。実装例は認証・認可のSaaSであるAuth0のSDK実装サンプルを参考にしています。AppIDで管理しているユーザープロフィールを取得します。(表示コンポーネント編)続いてAuthServiceを使って認証画面の表示と認証ステータスの状態を取得してみましょう。関数を設定し、TypeScriptのコンポーネントにAppIDのサインインを呼び出す同名の関数を実装しています。値が入るので表示の制御ができます。AppIDにWebリダイレクトURLを設定する。不正というメッセージが表示されます。同じ値がAppIDに設定されていないからです。redirect_uriが未登録の場合ここからがハマりポイントです。指定すれば良さそうに見えますが、2019/12/01現在はその限りではありません。正解はモーダルのURLに埋め込まれた値を使います。クエリパラメータの値をAppIDにセットしてあげましょう。完成です🎉これでAppIDの認証を組み込んだSPAの完成です。Password入力画面が表示されたらOKです。モーダルに表示される画像やヘッダーの色はお好きなものをAppID管理画面から設定できます。AppID認証画面モーダル総括ドキュメントは少ないですが、実装は数時間でできてしまいました。モーダル部品も用意されているので上記のように数十行あれば組み込めるのは簡単ですね。SDK様様だ)SPAでAppIDを利用したい方の参考になれば幸いです。つけると通る場合があります。APIを叩いて実現しているライブラリです。SDKなのでOIDC/OAuth2.0の仕組みを知らずとも容易に実装できますが、興味のある方はどのようなAPIを叩いているのかAppendixのSwagger定義を参照ください。Flowには既知の脆弱性が指摘されています。Flow)が含まれないので意図的に塞いでいるものと筆者は推測しています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。