1
2

More than 3 years have passed since last update.

Keychain sharingってよく聞くから調べた[2020]

Posted at

はじめに

キーチェーン備忘録。

iOSのApp Groupsについて調べていく中で
- Keychain sharing
- App Extentions
- サンドボックス

の3つが結構な頻度で出てきました。
自分的によく分からないことだらけだったので利用の仕方とかまでは書きませんが見返せるように。
また、間違ったイメージで捉えているかもしれないので正してくれる方がいれば幸いです。

Keychainとは何か

大まかにまとめると…

keychainは
パスワードや秘密鍵・公開鍵などの機密情報を安全に管理するための仕組み。
KeyChainで管理する情報は暗号化されています。
主にアカウント情報を扱うのに最適とされています。

ユーザの情報を保存する仕組みとして UserDefaults がありますが、
これは設定ファイルなどのプリファレンス情報を管理するための仕組みで
違いとしてはアプリが削除されてもデータが残るかどうか、が大きいですかね。
あとは、後で記述しますが同じKeychain Access Groupに属するアプリ同士で使えます。

MacやiPhone使っている人なら聞いたことありますよね、ってか知っていますよね。
自分もキーチェーン自体はなんとなく知っていました。

Keychain sharingとは

そして本題のKeychain Servicesは、そんなKeychainに保存された情報を扱うためのAPI群のようです。
基本はOSSライブラリを使うようです。
探した感じ有名なのはこの3つ。

  • SAMKeychain
  • KeychainAccess
  • LUKeychainAccess

業務で使用しているのはSAMKeychainでした。
記事で多いのはLUKeychainAccessかな?
長所とかまでは調べていないのでわかりませんが。。
iCloudのキーチェーンを有効にできるかなど違いがあるようです。

Keychain Access Group

Keychain Access Groupは「どの」アプリケーションがアイテムにアクセスできるのかを制御します。
デフォルトでは、アクセスできるアプリケーションはそのアイテムを格納したアプリケーション自身だけです。
グループの指定によって、同じグループに属するアプリケーションからのアクセスを許可出来ます。
このグループは、アイテムごとに指定できます。

簡単にいうと同じProvisinoingProfile,同じアカウントを使ったアプリ間での
KeyChainの共有ができるということです。

最後に

普通はもっと使い方について調べるのだと思うのですが
今回自分は概念についてのお勉強って感じでした。
もう少しまた調べて更新していこうと思います。

参考サイトの最新の記事
iOS技術者がWordpressでアプリ公式ページを制作したら
も1から10までやったことが書かれていて面白かったです。

~参考サイト~

[iOS] Keychain Services とは

1
2
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
1
2