会社が大規模だと逆に改善し易かったりする世界線の車窓から


大規模ですよねー(ですよねー)

 世界の連結従業員数約14万人くらいらしいです。
で、社内の特定認証部分(一部?)が以下プレスの通りActiveDirectory(実体はAzure AD?詳細は知らん)で動いてます。

デジタルグローバルコミュニケーションサービス
大規模向けコミュニケーション基盤の導入技術

 これにある程度の社員情報が格納されているようで認証だけに使うのでは非常に勿体ない基盤です。認可の観点でこんなの作れそうだよ!と改善提案のモックを組んだ時のアウトプットをお披露目したいと思います。

肝心のソースコード載せはLDAPのスキーマ機密でOKでないだろーなー、残念。。

 LDAP利用の最初は単に認証に使ってました。Goで書くとするとこんなかんじ。

  BASEDN := "dc=【秘密】,dc=【秘密】,dc=【秘密】"
  tlsConfig := &tls.Config{InsecureSkipVerify: true}
  l, err := ldap.DialTLS("tcp", "【ADサーバーの情報なので見せられないよ!】", tlsConfig)
  if err != nil {
    fmt.Println(err)
    return "error","connection error","",false
  }

  err = l.Bind(【ADユーザー名】, 【ADの認証方法】)
  if err != nil {
    fmt.Println(err)
    return "error","authentication error","",false
  }

 その後LDAPなんで認証後はディレクトリ検索拾えることがわかりました(当たり前だ!)

  FILTERA := "(SAMAccountName=" + 【ユーザー名】 + ")"
  searchRequestMyself := ldap.NewSearchRequest(
      BASEDN,
      ldap.ScopeWholeSubtree,
      ldap.NeverDerefAliases,
      0,
      0,
      false,
      FILTERA,
      []string{"【秘密】","【秘密】", "【秘密】","【秘密】","【秘密】"},
      nil,
  )

  sr, err := l.Search(searchRequestMyself)
  if err != nil {
    fmt.Println(err)
    return "error","search error","",false
  }

 というわけでちょっとした要アカウントツール作るにも思考停止してAD任せで良いんです!

以下、例。

社員情報の統制できてるからこそ、これが出来るんですよ!

①工数入力


 工数管理面倒ですよねーあと手入力で間違えたり・・ADから引っ張ってくるとアカウント情報管理が要らないのでべんりー

②製番管理


工数がどうにかなっても今度は製番だ!(製番って富士通用語だったりする?)管理職がメンテするけどこれも手作業は・・もちLDAPでロール(役職)管理できるので簡単に可視化だね!

③承認フロー



 ①,②をミックスしてTrelloぽい承認フローを考えてみた。ドラッグで承認できるし差戻もとってもUX!ロールで操作のバリデーション出来るから誤承認も無いね!

みたいな

たしかな統制がとれているからこそ、ドッグフーディング的に
無理くり内製して身の回りを改善していけるんだと思います。
けっこうつよいぞ!富士通基盤!!