0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHPカンファレンス2024参加レポート】ALBと外部IDプロバイダーで認証しつつ、LaravelではGate・Pollicyを使わずシンプルにアクセス制御する方法

Posted at

概要

Laravelにおいて認証・認可はGate・Policyの仕組みに沿えばイージーに実装が可能です。
しかし、OktaやMicrosoft Entra IDといった外部IDプロパイダーを使用し、認証自体はWebアプリケーションに到達する前に行いたい場合もあります。

このトークでは、AWS ALBと外部IDプロバイダーを使用しOIDCで認証を行いつつ、LaravelではCasbinという複数言語をサポートしているアクセス制御するための認可ライブラリを使ったRBACの実装例を紹介します。
また、ALBの誤った設定によるALBeastと呼ばれる脆弱性についても触れます。

所感

認証認可を外部に任せる、という点で似た状況にあったので、
技術面・手法として参考になりました。

開発って、コードを書いてプログラム組んでシステムにして・・・、
っていう作業なわけですが、既に存在するサービスやライブラリを利用する事で、書かなくてもいいコードも沢山あるわけで。

今はそういう、何と何をどう組み合わせればシステムを作れるか、という観点でエンジニアをするのも、とても大事になりましたね。

これは非常にいい例なのではないかな、と思います。

スライド

受講メモ

## 管理画面のアクセス制限
basci認証
Oauth

アプリレベル
アプリ前段
ネットワークレベル

サービス規模
組織やチームの状況
求められるセキュリティレベル


## 外部IDPとcasbin
ユーザー管理を一括管理
認証をAppの外に出せるので責務が減る
Laravelを使わない他でも応用可能

デメリット
Laravelで完結しない


## ALBとIdPの設定

OIDC準拠のIdPであれば簡単
ALBルールアクション定義に必要な情報を入れるだけ
ALB自体がIdPにリクエストできるようにセキュリティグループの考慮

## 設定の管理
ALB、SCGはTerraform管理

## ALBeastを避ける
設定、検証漏れによる脆弱性
JWTの署名の検証、sigerフィールドに含まれるALBのarnを検証
Appは特定のALBに限定通信

## 注意
Google認証は、gmail.comを含め任意のアカウントを通してしまう
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?