Elixir で SAML を使ったシングルサインオンが必要そうだったので、XML 署名を検証できるライブラリを作りました。 SAML とは 乱暴に言えば、XML 版の OAuth みたいな奴です。 クライアントとサーバ間でユーザ認証するのではなく、クライアントと第三者の認証機関(Identity Provider(IdP) と呼ぶ)の間でユーザ認証を行います。 IdPとクライアント間で認証が終わったら、IdP は SAML レスポンスと呼ばれる XML のデータを返すので、クライアントはこれをそのままサーバに投げると、サーバはこのデータを見てユーザを識別したり各操作を許可したりします。 ただ、サーバが無条件にこの SAML レスポンスを信用してしまうと、ユーザはいくらでも偽装したり操作を許可したり出来てしまいます。 そのため、この SAML レスポンスが、確実に指定した IdP が返した
この数ヶ月間は、社内で利用するための Elixir の Webフレームワークを作るのに注力していて、今も開発を続けています。 その開発で、Elixir の開発環境やルールをどうしているのかについて書きます。 開発環境は、各人でバージョン揃えるのが大変という問題があります。 例えば以下のアプリケーションのバージョンを考慮する必要があります。 Erlang のバージョン Elixir のバージョン NodeJS のバージョン MySQL のバージョン Redis のバージョン これらを、新しい人が入る度に指定したバージョンでインストールしてもらうのも大変だし、全員でバージョンを揃えるのも大変です。 また、開発中も統一してバージョンを上げていきたいし、そのバージョンは出来る限り最新にしたいところです。 ローカル環境でこれをやり続けるのはかなり大変なので、Docker と Docker Compo
This document covers some naming conventions in Elixir code, from casing to punctuation characters. Casing Elixir developers must use snake_case when defining variables, function names, module attributes, etc.: some_map = %{this_is_a_key: "and a value"} is_map(some_map) Aliases, commonly used as module names, are an exception as they must be capitalized and written in CamelCase, like OptionParser.
Plug について説明します。 Plug とは Elixir の HTTP サーバの実装の1つです。 内部では Erlang の信頼できる HTTP サーバ Cowboy を利用してますが、アダプターを切り替えることで他のライブラリにもできます。1 2017年12月19日現在、Cowboy 2 に対応した 1.5.0-rc.0 が出ています。 が、rc.0 なので、ちゃんとした 1.5.0 がリリースされるまでは 1.4.3 を使っておくのが無難でしょう。 Phoenix との違い Phoenix は Plug を利用して作っています。 Phoenix に渡ってくる conn は Plug.Conn なので、Phoenix を弄るには Plug の知識が必要になってきます。 また、Phoenix はプラグのインターフェースである init/1 と call/2 をうまく扱えるようにしている
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く