Project Skill Needs

Most of the project participants didn't come to the project with the kind of skills enumerated, but they reflect the baseline at which we get significant productivity from a contributor. Some of the cultural factors that are harder to describe include:

  • being a self-starter, we don't hold hands well
  • good diagnostic skills in problem resolution
  • being a quick learner
  • having a high attention to detail
  • low tolerance for bugs and a focus on correctness and security

Identity Provider (V3)

Foundational
  • Java Server Programming (intermediate)
  • Spring Framework (basic)
  • Windows and/or Unix Systems Programming (intermediate)
  • XML Processing (fluent)
  • HTTP Architecture (fluent)
  • Web Single Sign-On Architecture (basic)
Data / IDM Integration
  • Distributed Systems (fluent)
  • IDM (basic)
  • Domain specific knowledge (depends on use case being developed)
Authentication
  • Distributed Systems (fluent)
  • Expertise with the relevant authentication technology
  • Java / Web UI (intermediate)
User Interface Extensions (e.g., Consent, Terms of Use, Administration)
  • Java / Web UI (expert)
Packaging / Installation
  • Generally involves highly specialized tools / skills with packaging or installation frameworks
SAML Profile Development
  • SAML (expert)
  • XML Signature / Encryption, TLS, PKI (basic)
  • HTTP / SSO (expert)
  • Spring Web Flow (basic)

Similar skills required for other protocols (substituting their requirements).

OpenSAML-J (V3)

  • SAML (expert)
  • Java Programming (intermediate with strong design skills)
  • Windows and/or Unix Systems Programming (intermediate)
  • XML Processing (expert)
  • XML Signature / Encryption, TLS, PKI (expert)
  • HTTP Architecture (expert)
  • Distributed Systems (fluent)

Centralized Discovery Service

Foundational
  • Java Server Programming (intermediate)
  • Spring Framework (basic)
  • XML Processing (fluent)
  • HTTP Architecture (fluent)
User Interface
  • Java / Web UI (expert)

Metadata Aggregator

Foundational
  • Java programming (intermediate)
  • Spring Framework (basic)
Stage Definitions
  • XML Processing (fluent)
  • XML Signature / Encryption, PKI (basic)
  • Domain specific knowledge for relevant SAML extensions
Web Service
  • Java Server Programming (intermediate)
  • HTTP Architecture (fluent)

Service Provider (V2)

Foundational
  • C++ Programming (intermediate, experience with STL a must)
  • Windows and/or Unix Systems Programming (intermediate)
  • Network Programming (basic)
  • XML Processing (fluent)
  • HTTP Architecture (fluent)
  • Web Single Sign-On Architecture (fluent)
  • Apache / IIS / other Extension Programming (intermediate)
Data / IDM Integration
  • Distributed Systems (fluent)
  • IDM (basic)
  • Domain specific knowledge (depends on use case being developed)
Packaging / Installation
  • RPM (fluent)
  • Windows Installer (fluent)
SAML Profile Development
  • SAML (expert)
  • XML Signature / Encryption, TLS, PKI (basic)
  • HTTP / SSO (expert)
  • Spring Web Flow (basic)

Similar skills required for other protocols (substituting their requirements).

OpenSAML-C (V3)

  • SAML (expert)
  • C++ Programming (intermediate with strong design skills, experience with STL a must)
  • Windows and/or Unix Systems Programming (expert)
  • XML Processing (expert)
  • XML Signature / Encryption, TLS, PKI (expert)
  • HTTP Architecture (expert)
  • Distributed Systems (fluent)