Submit Search
Upload
Djangoフレームワークのユーザーモデルと認証
•
15 likes
•
58,195 views
Shinya Okano
Follow
Djangoフレームワークの認証機能の紹介です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 46
Download now
Download to read offline
Recommended
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
hirokiky
PyQ https://pyq.jp/ というプロダクトをリリース、開発していて分かったパーミッション、認可の深い話です。 p
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
http://d-cube.connpass.com/event/43057/ にて発表した内容です
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay
Takayuki Shimizukawa
Simple Way with Django + SQLAlchemy AT PyCon JP 2020 https://pycon.jp/2020/timetable/?id=203756 質疑応答 > Ryuji Tsutsui から全員に: 02:58 PM > INNNER JOIN > Nが1個多い? ほんとだ。slideshareにあげた資料、直せません! > Taku Shimizu から全員に: 03:00 PM > 「ドキュメントに記載されていない」なかなかのパワーフレーズですね でしょー > uranusjr から全員に: 03:04 PM > g2の別名はT3になるのはなぜですか? Djangoが自動的にテーブルを2回JOINすることもあって、そういう場合自動的にテーブル名の別名が付けられます。T2,T3,T4と連番で増えていきます。 たぶん、登場する3つ目のテーブルだからT3なのだと思います。 `annotate(g2=FilteredRelation(...)` のように名前指定しているのに使われないのは、バグなのかどうなのか追ってません。SQLは動作するので、バグとはいえないかも。 > Manabu から全員に: 03:17 PM > SQLAlchemy の モデルクラスを直接書いていましたが、 automap_base() は使わないのですか? 全テーブルを使いたいわけではないのと、用途の目的から、SQLAlchemyでForeignKeyを独自に追加定義したいなどもあるため、個別に書いています。 automap_base()を使っても良いと思います。 > c-bata から全員に: 03:19 PM > DBのマイグレーションはalembicを使う感じでしょうか? Dango ORM側で全てマイグレーションするか、それ以外(alembicや生DDL)でマイグレーションするかは統一すればよいと思います。 Django ORM側でやるのが楽だと思いますが、Redshiftなどの場合生DDLでやるしかなかったりするし、そういう環境でこそこの方法が有用だったりします。 > あ、基本的にDjango ORMを使っていて、難しいクエリだけSQLALchemyで SQL生成している感じですかね。 はい。そういう感じです。
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
- phpcon2022 の発表 - https://fortee.jp/phpcon-2022/proposal/b85ca73f-6383-4485-b2ae-4ec3e0913e72
RESTfulとは
RESTfulとは
星影 月夜
昔、社内勉強会でRESTについて発表した時に作った資料です。PCのファイル整理してたら発掘されたので、内容をちょっと修正してアップしました。 『Webを支える技術 - HTTP、URI、HTML、そしてREST』 をベースにしたお話です。
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
2022-03-05 YAPC::Japan::Online 2022
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
Recommended
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
hirokiky
PyQ https://pyq.jp/ というプロダクトをリリース、開発していて分かったパーミッション、認可の深い話です。 p
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
http://d-cube.connpass.com/event/43057/ にて発表した内容です
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay
Takayuki Shimizukawa
Simple Way with Django + SQLAlchemy AT PyCon JP 2020 https://pycon.jp/2020/timetable/?id=203756 質疑応答 > Ryuji Tsutsui から全員に: 02:58 PM > INNNER JOIN > Nが1個多い? ほんとだ。slideshareにあげた資料、直せません! > Taku Shimizu から全員に: 03:00 PM > 「ドキュメントに記載されていない」なかなかのパワーフレーズですね でしょー > uranusjr から全員に: 03:04 PM > g2の別名はT3になるのはなぜですか? Djangoが自動的にテーブルを2回JOINすることもあって、そういう場合自動的にテーブル名の別名が付けられます。T2,T3,T4と連番で増えていきます。 たぶん、登場する3つ目のテーブルだからT3なのだと思います。 `annotate(g2=FilteredRelation(...)` のように名前指定しているのに使われないのは、バグなのかどうなのか追ってません。SQLは動作するので、バグとはいえないかも。 > Manabu から全員に: 03:17 PM > SQLAlchemy の モデルクラスを直接書いていましたが、 automap_base() は使わないのですか? 全テーブルを使いたいわけではないのと、用途の目的から、SQLAlchemyでForeignKeyを独自に追加定義したいなどもあるため、個別に書いています。 automap_base()を使っても良いと思います。 > c-bata から全員に: 03:19 PM > DBのマイグレーションはalembicを使う感じでしょうか? Dango ORM側で全てマイグレーションするか、それ以外(alembicや生DDL)でマイグレーションするかは統一すればよいと思います。 Django ORM側でやるのが楽だと思いますが、Redshiftなどの場合生DDLでやるしかなかったりするし、そういう環境でこそこの方法が有用だったりします。 > あ、基本的にDjango ORMを使っていて、難しいクエリだけSQLALchemyで SQL生成している感じですかね。 はい。そういう感じです。
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
- phpcon2022 の発表 - https://fortee.jp/phpcon-2022/proposal/b85ca73f-6383-4485-b2ae-4ec3e0913e72
RESTfulとは
RESTfulとは
星影 月夜
昔、社内勉強会でRESTについて発表した時に作った資料です。PCのファイル整理してたら発掘されたので、内容をちょっと修正してアップしました。 『Webを支える技術 - HTTP、URI、HTML、そしてREST』 をベースにしたお話です。
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
2022-03-05 YAPC::Japan::Online 2022
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
・OSC徳島 ・PostgreSQLカンファレンス ・JJUG CCC の登壇資料です
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
更新日時を排除していくことでそこそこのモデルを書けるようになる手法です。
Guide To AGPL
Guide To AGPL
Mikiya Okuno
SugarCRM勉強会#009にて発表したスライドです。
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
インフラエンジニアの綺麗で優しい手順書の書き方
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
Mitsutoshi Kiuchi
Neo4j勉強会 #11 発表資料
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
神戸Pythonの会での SQLAlchemy 入門ハンズオンの資料です。 座学パートの多いSQLAlchemy Primerよりもハンズオンに重点を置いて、日本語で書き直しました。
nginxの紹介
nginxの紹介
Takashi Takizawa
第10回静岡ITPro勉強会インフラ部 「nginxの紹介」資料
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
KyutatsuNishiura
2021年のDjango Congress(長野開催)での発表資料です。 発表中に紹介できなかった部分などを追加してます。
自己紹介LT(公開版)
自己紹介LT(公開版)
Ken Muryoi
自ら己を紹介するLTした...
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
akira6592
エーピーコミュニケーションズ、新人研修資料。向き合うエンジニア。 エンジニアリングメンター室
Marp Tutorial
Marp Tutorial
Rui Watanabe
北村研Notion用
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Pythonによる(Rubyでも大体適用可能)黒魔術へ入門するための案内書
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
2017/03/07開催のイベント「Amazon Aurora事例祭り」での表題セッション資料です。
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
2015-01-31 Hokuriku.NET 勉強会 TLスライド まぁしゃれっすよしゃれ。
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
2019/3/15のLINE Login勉強会資料
レコチョクのサービス群を支えるApiたち
レコチョクのサービス群を支えるApiたち
recotech
API Meetup Tokyo #18
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
2015/08/31 論理削除Casual Talks #1
5分でわかる!ownCloudアドオンの作り方
5分でわかる!ownCloudアドオンの作り方
Yuki Takahashi
5分でHello Worldアプリの作り方を説明します。 当該アプリはownCloudアプリを作る際に一般的に利用するAppFrameworkを用いたアプリです。 主に以下のセンテンスの説明となります。 ・ルーティング : URLをコントローラーにひもづけます ・コントローラー : リクエスト受け取ってレスポンス返します ・DIコンテナのエントリ : コントローラで使えるようにこれを作っておきます ・テンプレート : ページを表示させるのに使うHTMLテンプレートです
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
Masayuki Uehara
Colla(コラ)というSlackアプリ開発を通して得た、プロダクトとしてのSlackアプリ開発の知見を共有します
More Related Content
What's hot
Guide To AGPL
Guide To AGPL
Mikiya Okuno
SugarCRM勉強会#009にて発表したスライドです。
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
インフラエンジニアの綺麗で優しい手順書の書き方
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
Mitsutoshi Kiuchi
Neo4j勉強会 #11 発表資料
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
神戸Pythonの会での SQLAlchemy 入門ハンズオンの資料です。 座学パートの多いSQLAlchemy Primerよりもハンズオンに重点を置いて、日本語で書き直しました。
nginxの紹介
nginxの紹介
Takashi Takizawa
第10回静岡ITPro勉強会インフラ部 「nginxの紹介」資料
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
KyutatsuNishiura
2021年のDjango Congress(長野開催)での発表資料です。 発表中に紹介できなかった部分などを追加してます。
自己紹介LT(公開版)
自己紹介LT(公開版)
Ken Muryoi
自ら己を紹介するLTした...
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
akira6592
エーピーコミュニケーションズ、新人研修資料。向き合うエンジニア。 エンジニアリングメンター室
Marp Tutorial
Marp Tutorial
Rui Watanabe
北村研Notion用
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
Pythonによる(Rubyでも大体適用可能)黒魔術へ入門するための案内書
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
より詳細なCQRSに関する資料はこちら https://little-hands.hatenablog.com/entry/2019/12/02/cqrs 参考資料:http://little-hands.hatenablog.com/entry/jjug2017fall 社内新規プロダクトでDDD, CQRSの思想をベースとしたアーキテクチャを構築し、コマンド(更新系処理)ではSpring Data JPA(Hibernate)を、クエリ(参照系処理)ではjOOQを採用しました。 結果としてそれぞれのORMの良いところを生かした組み合わせのアーキテクチャが構築できたので、その経緯と得られた知見についてお話ししたいと思います。 以下のようなトピックを考えています。 ・CQRSの定義とメリットデメリット ・DDD,CQRSを検討するにあたってのORMの選定ポイント ・構築したアーキテクチャ CQRSはDDDと切り分けて単独でも適用することができるので、DDDについてご存知ない方もご覧いただけます。日本語の文献は意外と少ないので、この辺りの分野に興味がある人の参考になれば幸いです。
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
2017/03/07開催のイベント「Amazon Aurora事例祭り」での表題セッション資料です。
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
Tadahiro Ishisaka
2015-01-31 Hokuriku.NET 勉強会 TLスライド まぁしゃれっすよしゃれ。
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
2019/3/15のLINE Login勉強会資料
レコチョクのサービス群を支えるApiたち
レコチョクのサービス群を支えるApiたち
recotech
API Meetup Tokyo #18
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
2015/08/31 論理削除Casual Talks #1
What's hot
(20)
Guide To AGPL
Guide To AGPL
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
(2017.6.9) Neo4jの可視化ライブラリまとめ
(2017.6.9) Neo4jの可視化ライブラリまとめ
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
例外設計における大罪
例外設計における大罪
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
nginxの紹介
nginxの紹介
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
理解して使いこなすDjangoのForm機能(2021 Django Congress発表資料)
自己紹介LT(公開版)
自己紹介LT(公開版)
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
Marp Tutorial
Marp Tutorial
Pythonによる黒魔術入門
Pythonによる黒魔術入門
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
レコチョクのサービス群を支えるApiたち
レコチョクのサービス群を支えるApiたち
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
Similar to Djangoフレームワークのユーザーモデルと認証
5分でわかる!ownCloudアドオンの作り方
5分でわかる!ownCloudアドオンの作り方
Yuki Takahashi
5分でHello Worldアプリの作り方を説明します。 当該アプリはownCloudアプリを作る際に一般的に利用するAppFrameworkを用いたアプリです。 主に以下のセンテンスの説明となります。 ・ルーティング : URLをコントローラーにひもづけます ・コントローラー : リクエスト受け取ってレスポンス返します ・DIコンテナのエントリ : コントローラで使えるようにこれを作っておきます ・テンプレート : ページを表示させるのに使うHTMLテンプレートです
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
Masayuki Uehara
Colla(コラ)というSlackアプリ開発を通して得た、プロダクトとしてのSlackアプリ開発の知見を共有します
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
OSSセキュリティ技術の会 第五回勉強会 Keycloak 拡張入門 https://secureoss-sig.connpass.com/event/130011/
PHP勉強会 LT会
PHP勉強会 LT会
suzumurashingo
認可と認証について
20141111 themi struct
20141111 themi struct
マジセミ by (株)オープンソース活用研究所
会議の主旨 スマートデバイスの活用、ネット通販、IoTなど、生活のいたるところでITのが活用されています。一方、個人情報の漏洩事件が相次いでいます。 最近の、大手教育事業会社での大規模な個人情報漏洩事件は記憶に新しいところです。 企業は、社内の情報(データ)をいかに保護するか、そのセキュリティ対策を見直す必要に迫られています。 企業の情報システムを利用する際の「認証」や、「シングルサインオン」は、企業のセキュリティ対策の根幹です。 なぜなら、監査ログの記録や分析、アクセスコントロールなど、全てのセキュリティ対策は、利用者の特定からはじまり、「認証」や「シングルサインオン」がそれを担うからです。 「明日の認証会議」では、「認証」について様々な環境の変化や課題があるなかで、今はなく、遠い未来でもなく、「明日、何をするべきか」というテーマを選んで議論を進めて行きます。 また、要素技術や仕様についての細かい議論ではなく、利用者の視点に立った議論を行っていきます。 さらに、単なるセミナー、勉強会ではなく、参加者の皆様からも広く意見を集められるよう、事前にご意見や質問を集めて、登壇者に回答してもらう時間を取ります。 今回は、基本に立ち返り、「シングルサインオンの基本」について、ご紹介します。また、社員1万人の大企業による、OpenAM(シングルサインオン)と、Liferay(ポータル)の導入事例について、ご紹介します。 いまさら聞けない「シングルサインオンの基本」と、社員1万人の大企業におけるOpenAM導入事例紹介 ~Webアプリケーションに手をいれることなく、認証連携を実現する方法~ 株式会社オージス総研 サービス事業本部 テミストラクトソリューション部 情報セキュリティスペシャリスト 諸橋 純也 シングルサインオンは、企業におけるセキュリティ対策の根幹です。本セッションではシングルサインオンの役割や基本的な仕組みをご紹介するとともに、社員1万人の大企業におけるOpenAMの導入事例をご紹介します。とくに、通常ではシングルサイン対象のWebシステムの改修が必要になるところを、まったくそれに手をいれずにシングルサインオンを実現した方法について、ご紹介します。
choreonoid_ros_control を実装した話
choreonoid_ros_control を実装した話
Ryodo Tanaka
ROS勉強会 2020/06/26 の発表内容
How To Drink Wsgi
How To Drink Wsgi
Atsushi Odagiri
Opauthライブラリによるtwitter,facebook認証について
Opauthライブラリによるtwitter,facebook認証について
松本 雄貴
Laravel LT
Laravel LT
Iwama Ryo
Laravel LT night #1 で使ったスライド
20111203 gdd2011フィードバック 公開用
20111203 gdd2011フィードバック 公開用
tksyokoyama
第11回中国GTUG勉強会@岡山の萩野さんの資料です。
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
Lightning Talks at XP Festival 2014 http://xpjug.com/xp2014/
Single sign-on system requiring authorization
Single sign-on system requiring authorization
H MM
認可を必要とするシングルサインオンシステム FIT2007
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17
Tatsuo Kudo
https://zisc.ethz.ch/oauth-security-workshop-2017/ の私的まとめ
Ptengineトレーニング資料20211103
Ptengineトレーニング資料20211103
Takashi Ando
Ptengineを有効活用していただくための活用トレーニング資料です! ■主にわかること 1.Ptengineってどんなことができるサービスなのか 2.活用の鉄板フレームワーク 3.データの読み解き方や解釈のしかた 4.費用対効果の算出方法 5..webサイトの施策実行でPtengineを活用する方法
20141111 明日の認証会議資料(寺田)
20141111 明日の認証会議資料(寺田)
マジセミ by (株)オープンソース活用研究所
会議の主旨 スマートデバイスの活用、ネット通販、IoTなど、生活のいたるところでITのが活用されています。一方、個人情報の漏洩事件が相次いでいます。 最近の、大手教育事業会社での大規模な個人情報漏洩事件は記憶に新しいところです。 企業は、社内の情報(データ)をいかに保護するか、そのセキュリティ対策を見直す必要に迫られています。 企業の情報システムを利用する際の「認証」や、「シングルサインオン」は、企業のセキュリティ対策の根幹です。 なぜなら、監査ログの記録や分析、アクセスコントロールなど、全てのセキュリティ対策は、利用者の特定からはじまり、「認証」や「シングルサインオン」がそれを担うからです。 「明日の認証会議」では、「認証」について様々な環境の変化や課題があるなかで、今はなく、遠い未来でもなく、「明日、何をするべきか」というテーマを選んで議論を進めて行きます。 また、要素技術や仕様についての細かい議論ではなく、利用者の視点に立った議論を行っていきます。 さらに、単なるセミナー、勉強会ではなく、参加者の皆様からも広く意見を集められるよう、事前にご意見や質問を集めて、登壇者に回答してもらう時間を取ります。 今回は、基本に立ち返り、「シングルサインオンの基本」について、ご紹介します。また、社員1万人の大企業による、OpenAM(シングルサインオン)と、Liferay(ポータル)の導入事例について、ご紹介します。 スマートデバイスを企業で活用する際のセキュリティ対策とは 株式会社オープンソース活用研究所 代表取締役所長 寺田雄一 最近では、スマートデバイス(スマートフォンやタブレット端末など)を、全社員に所持させることも珍しくなくなってきています。当初は「メールだけ」といった利用方法が多いかもしれませんが、当然、様々な社内の情報システム、外出先からアクセスさせたい、というニーズが高まっています。社外からのアクセスに対して、どうセキュリティを確保すればよいのか、最近の動向を踏まえながら解説します。
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
abend_cve_9999_0001
Burp Suite
Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!
Project Samurai
Python と Django を用いて、OAuth2 について実習形式で学びました。Google や Facebook にあるリソースに OAuth2 を用いてアクセスするプログラムを作成しました。 Morning Project Samurai 第23回 (2015/03/14) の定例ミーティングの勉強会資料です。
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
Shinya Okano
Djangoフレームワークの紹介
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
Tatsuo Kudo
Prepared for MyData Japan 2019 https://mydatajapan.org/events/mydata-japan-2019.html
Movable Typeトライアルの提供方式はクラウド型に
Movable Typeトライアルの提供方式はクラウド型に
Six Apart KK
Six Apart Day 2012でこう
Similar to Djangoフレームワークのユーザーモデルと認証
(20)
5分でわかる!ownCloudアドオンの作り方
5分でわかる!ownCloudアドオンの作り方
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
Keycloak拡張入門
Keycloak拡張入門
PHP勉強会 LT会
PHP勉強会 LT会
20141111 themi struct
20141111 themi struct
choreonoid_ros_control を実装した話
choreonoid_ros_control を実装した話
How To Drink Wsgi
How To Drink Wsgi
Opauthライブラリによるtwitter,facebook認証について
Opauthライブラリによるtwitter,facebook認証について
Laravel LT
Laravel LT
20111203 gdd2011フィードバック 公開用
20111203 gdd2011フィードバック 公開用
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Single sign-on system requiring authorization
Single sign-on system requiring authorization
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17
Ptengineトレーニング資料20211103
Ptengineトレーニング資料20211103
20141111 明日の認証会議資料(寺田)
20141111 明日の認証会議資料(寺田)
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
Movable Typeトライアルの提供方式はクラウド型に
Movable Typeトライアルの提供方式はクラウド型に
More from Shinya Okano
Djangoエンジニアの観点から見たHue
Djangoエンジニアの観点から見たHue
Shinya Okano
Djangoエンジニアの観点から見たHue
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
Djangoフレームワークの紹介
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
PyConJP 2016 Pythonでpyftpdlibを使ってFTPサーバーを作る際に使ったテクニックの紹介
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
Shinya Okano
PyConJP2016 Python入門 コードリーディング の資料です。
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
OSC 北海道 2016 で使った資料です。
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
Shinya Okano
PyCon mini Sapporo 2015で話した際に使用したスライドです。
Python札幌201406
Python札幌201406
Shinya Okano
Spring4Dの紹介
Spring4Dの紹介
Shinya Okano
Hadoopとその周辺の紹介
Hadoopとその周辺の紹介
Shinya Okano
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
Shinya Okano
2011.06.01 和歌山高専
2011.06.01 和歌山高専
Shinya Okano
2011.06.01に和歌山高専の電気情報工学科4年の講義で使ったスライド。 https://dl.dropbox.com/u/370615/wnct_tokibito_20110607.jpg
電子書籍の話
電子書籍の話
Shinya Okano
写真共有アプリのバックエンドサーバー
写真共有アプリのバックエンドサーバー
Shinya Okano
apppengine ja night #21 の資料です。
Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
Shinya Okano
ビープラウドではXenServerを使って開発用サーバを運用しています。 今回は運用方法の紹介や、こんな時に便利だったなどの話をしたいと思います。
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
Shinya Okano
More from Shinya Okano
(16)
Djangoエンジニアの観点から見たHue
Djangoエンジニアの観点から見たHue
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Pyconjp2016 pyftplib
Pyconjp2016 pyftplib
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
Python札幌201406
Python札幌201406
Spring4Dの紹介
Spring4Dの紹介
Hadoopとその周辺の紹介
Hadoopとその周辺の紹介
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
2011.06.01 和歌山高専
2011.06.01 和歌山高専
電子書籍の話
電子書籍の話
写真共有アプリのバックエンドサーバー
写真共有アプリのバックエンドサーバー
Python札幌 2012/06/17
Python札幌 2012/06/17
XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
Djangoフレームワークのユーザーモデルと認証
1.
Djangoフレームワークの ユーザーモデルと認証 PyConJP 2017 岡野 真也
(@tokibito)
2.
お前誰よ? 岡野真也 (@tokibito) 株式会社オープンコレクター http://www.open-c.jp/ お仕事あればご相談ください 2
3.
今日話すこと 認証と認可について 前知識 『Djangoの認証機能』 認証機能の使い方 認証機能の仕組み 認証機能のカスタマイズ Djangoのバージョンは、1.11を前提としています。 3
4.
認証と認可について 4
5.
Auth 5
6.
Auth? 認証(Authentication) システムから見て、利用者が誰であるかを判別 して扱うこと この話をします 認可(Authorization) システム上で、利用者に閲覧や操作を許可する こと 権限を扱うこと この話はしません (hirokikyさんのセッションへ) 6
7.
認証の話に入る前に Webアプリケーションで認証を扱うための前知識 HTTPヘッダ Cookie セッション ざっくり説明 (省略) ブラウザ=ウェブブラウザ(ChromeとかIE) (省略) サーバー=HTTPサーバー 7
8.
HTTPヘッダ HTTPでのリクエスト, レスポンスの先頭のほうに ある情報 ブラウザの画面上には表示されない ブラウザがコンテンツをよしなに扱うための情報 が詰まってる ブラウザの開発者ツールで確認できるよ 8
9.
ブラウザとサーバーのやりと り 9
10.
Cookie ブラウザにデータを保存できるところ キーと値のペアで保存 サーバーからのレスポンスでHTTPヘッダにSet- Cookieでデータを入れとくと、 ブラウザが保存し てくれる 保存されたデータは、ブラウザが次回リクエスト 時に Cookieヘッダでサーバーに送信される 10
11.
ブラウザとのCookieのやりと り 11
12.
セッション(HTTPセッション) ブラウザからの操作(ページ遷移)を 一連の流れ と して扱うこと セッションに紐付けて、サーバー側で認証情報な どを保持したりできる(セッションデータ) 12
13.
セッションの仕組み(例) 1. ブラウザがサーバーへHTTPリクエスト 2. サーバー側でセッションIDを発行し、Set-Cookie ヘッダに含めてレスポンス 3.
ブラウザはCookieデータとしてセッションIDを保 存 4. 次回以降、ブラウザのHTTPリクエストでCookie ヘッダでセッションIDをサーバーに送信 5. サーバーはセッションIDが一致すれば同一セッシ ョンとして扱う 13
14.
セッションのやりとり 14
15.
ここからは『Djangoの』話 15
16.
Djangoのセッション機能 django.contrib.session (デフォルトで有効) Cookieでは sessionid
キーでセッションIDを保持 SessionMiddlewareにてCookieのセッションIDと サーバー上のセッションIDを照合 サーバー上に保存されたセッションデータは、 request.session 辞書に復元される 認証データはここに格納します 16
17.
Djangoのセッション 17
18.
ここからDjangoの認証の話 18
19.
まずは使い方から。 19
20.
Djangoの認証機能の使い方 アプリケーションの有効化 設定 ユーザーの登録 ログイン、ログアウトのView Viewでユーザー情報を使う ログインが必要なViewを作る ユーザーに紐づくデータ API 20
21.
アプリケーションの有効化 Djangoプロジェクトの settings.py の INSTALLED_APPSに
django.contrib.auth を記述 デフォルトで有効 MIDDLEWAREに django.contrib.auth.middleware.AuthenticationMiddleware を記述 デフォルトで有効 manage.py migrate でユーザー情報を保存するテー ブルを作成 21
22.
設定 ログイン後のリダイレクト先の設定 settings.LOGIN_REDIRECT_URL ログアウト後のリダイレクト先の設定 settings.LOGOUT_REDIRECT_URL ログインページのURL設定 settings.LOGIN_URL 22
23.
ユーザーの登録 管理者ユーザーの登録 manage.py スクリプトの createsuperuser
コマン ド ./manage.py createsuepruser 一般ユーザーの登録 Djangoの管理画面から登録 Userモデルを操作して登録 23
24.
24
25.
ログイン、ログアウトのView urls.py で django.contrib.auth.views.LoginView
を使い ます。ログアウトは LogoutView です。 from django.conf.urls import url from django.contrib.auth.views import LoginView, LogoutView urlpatterns = [ url(r'^login$', LoginView.as_view(), name='login'), url(r'^logout$', LogoutView.as_view(), name='logout'), ] ログイン画面のデフォルトテンプレートパスは、 registration/login.html 25
26.
Viewでユーザー情報を使う Viewでは request.user を参照します。 未認証時は、
AnonymousUser 、認証済みの場合は User のインスタンスとなります。 from django.http import HttpResponse def my_view(request): if request.user.is_authenticated: return HttpResponse("認証済みです: {}".format( request.user.username)) else: return HttpResponse("未認証です") 26
27.
ログインが必要なViewを作る ログインを必須とするViewを作る場合は、 django.contrib.auth.decorators.login_required デコレ ータを使います。 from django.contrib.auth.decorators
import login_required @login_required def secret_view(request): "認証が必要なView" 未認証時にアクセスすると、ログインURLへリダイレ クトされます。 27
28.
ユーザーに紐づくデータ ユーザーに関連するデータを保存するモデルを定義す る場合は、ForeignKeyには settings.AUTH_USER_MODEL を指定します。 from django.db
import models from django.conf import settings class Article(models.Model): author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, ) ユーザーモデルは、 settings.AUTH_USER_MODEL で変更 できるためです。 28
29.
API 認証機能に依存するアプリケーションを作る際には APIを使います。以下は、特定のユーザーでログイン させる例です。 from django.shortcuts import
redirect from django.contrib.auth import get_user_model, login def my_view(request): UserModel = get_user_model() # ユーザーモデルの取得 user = UserModel.objects.get(pk=1) # pk=1のユーザーを取得 login(request, user) # 取得したユーザーでログインさせる return redirect('/') # リダイレクト その他API多数。詳しくは ドキュメント を参照。 29
30.
使い方はここまで。 30
31.
Djangoの認証機能の仕組み 31
32.
ログイン処理のサーバー側 ざっくり説明すると、 1. ユーザーの照合処理 1-1. ユーザー名でDBからユーザー情報を探す 1-2.
パスワード照合 1-3. 有効かどうかチェック ここまでに失敗したらログイン画面再表示 2. セッションにユーザーIDと使用したバックエンド クラス名を保存 3. リダイレクトレスポンスを返す 32
33.
ログイン処理の流れ 33
34.
ユーザーの照合処理の詳細 settings.AUTHENTICATION_BACKENDSに列挙され たクラスが使われます django.contrib.auth.backends.ModelBackend (抜粋) class ModelBackend(object): def
authenticate(self, request, username, password): """usernameでユーザー情報を取得 passwordが正しければUserオブジェクトを返す""" def get_user(self, user_id): """user_idと一致するUserオブジェクトを返す""" 34
35.
ユーザー情報 django.contrib.auth.models.User (抜粋) class AbstractBaseUser(models.Model): password
= models.CharField() class AbstractUser(AbstractBaseUser, PermissionsMixin): username = models.CharField() class User(AbstractUser): class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL' Userモデルにusernameとpasswordを保持しています 35
36.
セッションへの保存 認証に成功すると、ユーザー情報はセッションに保存 されます request.session["_auth_user_id"] = user.pk request.session["_auth_user_backend"]
= '(バックエン ドクラス名)' セッション機能によりこのデータは、サーバー側で保 存されます。 36
37.
認証できました ここまでの処理: セッションにユーザーID(認証データ)が保持された ログイン処理が成功したのでリダイレクトされた 次は認証データを使う処理を見ていきます。 37
38.
認証データの参照 認証データを参照する処理は、次のような仕組みで動 作します。 1. AuthenticationMiddleware 1-1. request.sessionからユーザーIDと認証バック エンドクラス名を取り出す 1-2.
バックエンドクラスでUserを取得 1-3. request.user にUserかAnonymousUserを代入 2. Viewで request.user を参照する 38
39.
認証データの参照 39
40.
セキュリティTips 複数のブラウザで同じユーザーにて同時にログイ ンは可能。 パスワードを変更した場合は、変更処理をした セッション以外のログイン情報は無効化される パスワードの暗号化処理は、カスタマイズ可能。 デフォルトのアルゴリズムはPBKDF2。 40
41.
認証機能のカスタマイズ 41
42.
よくある要求 ユーザー情報のカラムを増やしたい ユーザーモデルのカスタマイズ LDAPやAD認証など他の認証システム(照合のみ)と 連携したい バックエンド変更 OAuth(OpenID Connect)で外部の認証システムと 連携したい python-social-authを使うだけでOK もしくは、Viewを用意+バックエンド変更 42
43.
カスタマイズのポイント ユーザーモデルの変更 認証バックエンドの変更 43
44.
ユーザーモデルの変更 AbstractBaseUser を継承してモデルを定義する PK(ID)は必須 複合主キーは使えません。 class MyUser(AbstractBaseUser): identifier
= models.CharField(max_length=40, unique=True ... USERNAME_FIELD = 'identifier' settings.AUTH_USER_MODEL にクラスを指定すると有効化 詳しくは ドキュメント を参照。 44
45.
認証バックエンドの変更 authenticateとget_userメソッドを持ったバックエン ドクラスを定義して使います。 class MyBackend(object): def authenticate(request,
**credentials): "照合OKならUserを返す処理を書く" def get_user(self, user_id): "user_idと一致するUserオブジェクトを返す処理を書く" settings.AUTH_BACKENDS にクラスを指定すると有効化 詳しくは ドキュメント を参照。 45
46.
まとめ 認証(Authentication)は、システムから見て、利用 者が誰であるかを判別して扱うこと Djangoの認証機能では、セッションにユーザー情 報を保持している Djangoの認証機能は、認証バックエンドでユーザ ーの照合、取得をしている ユーザーモデルや認証バックエンドはカスタマイ ズできる 46
Download now